要获取帖子数量,无需再次查询即可轻松完成
$adsQuery->post_count;
但如果有什么原因的话(我想知道背景!)我无法理解同一个查询必须运行两次并直接到数据库,才能回答您的问题,即为什么它不起作用:
已经$table_name
是否已定义?您正在使用{$wpdb->prefix}_posts
或{$wpdb->posts}
在里面$table_name
?
您周围没有sql字符串值引号$taxQuery
或$metaValue
值,因此这将中断查询,除非它们是整数
已经$wpdb
是否已在全球范围内宣布?
您正在使用$wpdb->print_error()
显示问题?
如果您回显了字符串查询而不是运行它,它看起来像您所期望的吗?缺少什么?如果将其粘贴到phpmyAdmin/sqlworkbench中,是否会显示问题?
服务器错误日志中是否有任何错误?mysql错误日志?
我建议如下
<?php
global $wpdb;
$query = "
SELECT COUNT(ID)
FROM {$wpdb->posts}
WHERE post_type = \'ads\'
AND post_status = \'publish\'
AND tax_query = \\"%s\\"
AND meta_query = \\"%s\\"";
// show query
// echo "<pre>{$query}</pre>";
$count = $wpdb->get_var( $wpdb->prepare(
$query,
$taxQuery,
$metaValue
));
echo "<pre>";
if($wpdb->last_error !== \'\') {
echo " ERROR: ";
$wpdb->print_error();
} else {
echo "Count: {$count}";
}
echo "</pre>";