我有这个代码,但它显示了按帖子类型“code”发布的帖子总数。
<?php
$count_posts = wp_count_posts(\'code\')->publish;
echo $count_posts;
?>
我有两种帖子类型:“代码”和“商店”
Post type code是Post type“shop”的“子项”<因此,我需要显示附加到“parrent”帖子类型“shop”的“child”帖子类型“code”的帖子数量。
更新-解决方案(如果任何其他人面临相同问题):
<?php
$result = $wpdb->get_results(
$wpdb->prepare(
"SELECT COUNT(*) AS code_num FROM {$wpdb->prefix}postmeta AS postmeta LEFT JOIN {$wpdb->prefix}postmeta AS postmeta1 ON postmeta.post_id = postmeta1.post_id WHERE postmeta1.meta_key = \'code_expire\' AND postmeta1.meta_value > %d AND postmeta.meta_key = \'code_shop_id\' AND postmeta.meta_value = %s",
current_time(\'timestamp\'),
$post->ID
)
);
$result = array_shift( $result );
echo \'
<li class="list-group-item">
<span class="badge">\'.$result->code_num.\'</span>
<a href="\'.esc_url( get_permalink( $post->ID ) ).\'"> \'.$post->post_title.\' </a>
</li>\';
?>
非常感谢艾哈迈德!
最合适的回答,由SO网友:Ahmed Fouad 整理而成
如果您更喜欢$wpdb直接查询,可以使用如下内容:
global $wpdb;
$count = $wpdb->get_var( "SELECT COUNT(ID) FROM {$wpdb->posts} WHERE post_type = \'code\' and post_status = \'publish\'" );
echo $count;
在上面的sql查询中,更改
post_type
去你喜欢的任何地方。这将仅返回特定帖子类型下已发布帖子的计数。
如果要查询多个帖子类型的计数,请执行以下查询:
global $wpdb;
$count = $wpdb->get_var( "SELECT COUNT(ID) FROM {$wpdb->posts} WHERE post_type IN ( \'code\', \'shop\', \'post\', \'etc\' ) and post_status = \'publish\'" );
echo $count;
希望这有帮助。