0

我已经很好地工作了,但我需要在另一个模板上做类似的事情。此代码列出所有类别并显示每个类别中包含多少帖子:

<?php
$categories = get_categories('exclude=1&order=DESC');
foreach ($categories as $cat) { ?>

<div class="cats">
<h2><a href="<?php echo $cat->category_nicename; ?>"><?php echo $cat->cat_name; ?></a></h2>
<p>There are <?php echo $cat->category_count; ?> posts in this category.</p>
</div>
<?php }
?>

现在我需要做的是同样的事情,但数字输出还需要包括已被删除的帖子。

仅以一个类别为例 - 我们称之为“电话”,假设它有 5 个已发布帖子和 3 个已删除帖子,则返回的数量需要为 8。

我希望我解释得当。

谢谢!

4

2 回答 2

0

这并不难,但是,你必须以稍微不同的方式去做。

在 foreach 中,您应该调用get_postsWP_Query,以使用自定义参数获取特定类别中的所有帖子post_status;然后显示它的数量。

WP_Query你可能会使用

['post_status' => array('publish', 'trash', 'inherit', ...)]

get_posts作为

('post_status=any&categor=1&...')

编辑

这是一种方法,如何实现。

<?php
$categories = get_categories('exclude=1&order=DESC');
foreach ($categories as $cat) {

$posts = new WP_Query( array('post_type' => 'post', 'post_status' => array('trash', 'publish'), 'cat' => $cat->cat_ID));?>

    <div class="cats">
        <h2><a href="<?php echo $cat->category_nicename; ?>"><?php echo $cat->cat_name; ?></a></h2>
        <p>There are <?php echo $posts->post_count; ?> posts in this category.</p>
    </div>
<?php } ?>
于 2013-10-19T08:09:35.857 回答
0
$count = $wpdb -> get_results("SELECT count(*) as count 
FROM `wp_posts`, `wp_term_relationships`
WHERE id=object_id AND term_taxonomy_id=$cat_id AND post_type='post' AND 
post_status='publish'");
$count = $count[0] -> count;
于 2014-03-15T04:58:18.107 回答