使用get_results ARRAY_A的WordPress函数返回结果异常求助
解决WordPress热门标签输出显示Array的问题
问题出在你直接echo了整个数组元素,而每个查询结果都是一个关联数组,所以页面只会打印出Array。print_r能看到正确数据,说明SQL查询没问题,只是输出时没取到数组里的标签名称字段。
具体修改方法:
- 先确认你的SQL查询返回的数组结构,比如
print_r($VDterms)后,看每个子数组里标签名称对应的键是什么(通常是name,如果SQL里给字段起了别名,比如tag_name,就用对应的别名)。 - 修改
foreach循环,输出数组里的具体字段,而不是整个数组:
原来的错误代码:
$VDterms = $wpdb->get_results($VDtermsSQL, ARRAY_A); foreach ($VDterms as $term) { echo $term; // 直接输出数组,导致显示Array }
修改后的正确代码:
$VDterms = $wpdb->get_results($VDtermsSQL, ARRAY_A); foreach ($VDterms as $term) { // 假设标签名称的键是name,根据实际结构调整 echo esc_html($term['name']) . ' '; }
补充说明:
- 如果你的SQL语句是类似
SELECT t.name AS tag_name FROM wp_terms t ...,那就要用$term['tag_name']来获取标签名称。 - 用
esc_html()是为了过滤标签名称里的特殊字符,避免XSS安全问题,符合WordPress开发规范。
内容的提问来源于stack exchange,提问作者silverzpeed
相关产品推荐
相关产品推荐

