如何在WordPress中的单个类别中显示总帖子?

时间:2017-06-01 13:36:42

标签: php wordpress

如何在WordPress的单个类别中显示总帖子?

我有一个类别,我带着计数在我的侧边栏中显示。(此类别中有多少帖子?)

请帮帮我。

感谢。

2 个答案:

答案 0 :(得分:0)

您可以尝试使用此插件https://wordpress.org/plugins/category-posts/

或者如果您喜欢自己的代码。这是:
您可以使用方法get_posts获取接受单个数组参数或字符串参数的结果,如下所示。

<?php $posts = get_posts('post_type=post&category=4'); 
$count = count($posts); 
echo $count; 
?>

上述代码的说明: 它从wp_postspost_type且属于post ID category的表4中提取帖子结果。然后我们使用php函数count来获取总记录。

如果您只需要发布帖子,请另外添加post_status=publish

function wpb_postsbycategory() {
// the query
$the_query = new WP_Query( array( 'category_name' => 'announcements', 'posts_per_page' => 10 ) ); 

$posts = get_posts('post_type=post&category_name=announcements'); 
$count = count($posts); 

// The Loop
if ( $the_query->have_posts() ) {
    $string .= "<p>Total:<strong>{$count}</strong></p>";
    $string .= '<ul class="postsbycategory widget_recent_entries">';
    while ( $the_query->have_posts() ) {
        $the_query->the_post();
            if ( has_post_thumbnail() ) {
            $string .= '<li>';
            $string .= '<a href="' . get_the_permalink() .'" rel="bookmark">' . get_the_post_thumbnail($post_id, array( 50, 50) ) . get_the_title() .'</a></li>';
            } else { 
            // if no featured image is found
            $string .= '<li><a href="' . get_the_permalink() .'" rel="bookmark">' . get_the_title() .'</a></li>';
            }
            }
    } else {
    // no posts found
}
$string .= '</ul>';

return $string;

/* Restore original Post Data */
wp_reset_postdata();
}
// Add a shortcode
add_shortcode('categoryposts', 'wpb_postsbycategory');

// Enable shortcodes in text widgets
add_filter('widget_text', 'do_shortcode');

通过使用上述功能,您可以生成结果输出。 (供参考Show recent posts by category

只需访问Appearance » Widgets菜单,然后在text widget添加sidebar即可。接下来在文本小部件中添加[categoryposts]短代码并保存。

答案 1 :(得分:0)

要计算特定类别的帖子总数,可以使用此方法。

<?php
        function count_cat_post($category) {
          //you can pass name of the category such as 'js'
          if(is_string($category)) {
              $catID = get_cat_ID($category);
          }
          //you can also pass id of the category
          elseif(is_numeric($category)) {
            $catID = $category;
          } else {
            return 0;
        }
        $cat = get_category($catID);
        return $cat->count;
        }
    //finally call the function
    count_cat_post('js');//or pass the category id as argument
    ?>