按类型统计已发布帖子的数量

时间:2016-09-19 作者:Kasper

我有这个代码,但它显示了按帖子类型“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>\';
    ?>
非常感谢艾哈迈德!

2 个回复
最合适的回答,由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;
希望这有帮助。

SO网友:RyanCameron.Me
$count = 0; 
$loop = new WP_Query( array(\'post_type\' => \'code\') );

while ( $loop->have_posts() ) : $loop->the_post();
  $count = $count + 1;
endwhile;

echo $count;

相关推荐

显示作者姓名PHP(自制插件)

我有一个需要帮助的问题,因为我自己找不到解决办法。我接管了一个网站,之前有人在那里创建了一个自制插件。。使用默认插件“Contact Form 7”,用户可以在页面上创建帖子。()https://gyazo.com/c8b20adecacd90fb9bfe72ad2138a980 )关于自行创建的插件“Contact Form 7 extender”,帖子是通过PHP代码在后台生成的(https://gyazo.com/115a6c7c9afafd2970b66fd421ca76a3)其工作原理如下:如果