如何在WordPress的单个类别中显示总帖子?
我有一个类别,我带着计数在我的侧边栏中显示。(此类别中有多少帖子?)
请帮帮我。
感谢。
答案 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_posts
为post_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
?>