在悟空搜新版官网下方有一个网站数据统计的板块,包含整站文章数量统计、整站文章浏览量统计、单个分类文章数量统计,以及网站导航的文章数量统计。
很多朋友询问,网址导航是一个自定义分类,那么自定义分类的文章数量是如何统计的?下面悟空搜将分享获取自定义分类文章数量的方法。
其实方法很简单。在网上搜索后,不出意外找到大量相关内容,筛选后确定了 wp_count_posts() 函数,可以很方便地实现此功能。
wp_count_posts() 函数介绍
wp_count_posts() 函数用于计算指定文章类型的文章数量,还可以设置用户是否有权查看。它有两个可用参数:
wp_count_posts( string $type = 'post', string $perm = '' )
参数说明:
$type:字符串,可选。指定要获取文章数量的文章类型名称,默认为'post'。$perm:字符串,可选。检查“可读”权限。如果用户有权限阅读私密文章,将为登录用户显示该文章。可选值为'readable'或空字符串'',默认为空。
示例:获取默认文章(post)类型的文章数量
$count_posts = wp_count_posts(); // 不传参数,默认为 'post'
if ( $count_posts ) {
$published_posts = $count_posts->publish;
}
示例:获取自定义文章类型的文章数量
首先,你需要了解 WordPress 的自定义文章类型(Custom Post Type)。
了解自定义文章类型后,找到其名称。例如,如果要获取名为 site 的自定义文章类型的文章数量,可以使用以下代码:
$count_posts = wp_count_posts('site'); // 参数填写为自定义文章类型的名称
if ( $count_posts ) {
$published_posts = $count_posts->publish;
}
获取分类目录的文章数量
请注意,wp_count_posts() 函数统计的是文章类型(如 post, page, 或自定义类型)的总数,而不是特定分类下的文章数量。
若要获取特定分类(包括自定义分类法下的分类)的文章数量,需要使用其他方法,例如 get_term_by() 结合 get_term() 或 WP_Query。核心思路是先获取分类术语对象,然后访问其 count 属性。
示例:获取特定分类的文章数量
// 假设你的自定义分类法名为 'website_nav',分类术语ID为 5
$term = get_term(5, 'website_nav');
if ($term && !is_wp_error($term)) {
$post_count = $term->count; // 这里就是该分类下的文章数量
echo '分类“' . $term->name . '”下的文章数量为:' . $post_count;
}
或者,如果你知道分类的别名(slug):
$term = get_term_by('slug', 'your-category-slug', 'website_nav');
if ($term && !is_wp_error($term)) {
$post_count = $term->count;
}
通过上述方法,你就可以准确统计出网站导航(或其他任何自定义分类)下的文章总数了。