博客 / WordPress/ WordPress获取自定义分类文章数量总数

WordPress获取自定义分类文章数量总数

WordPress获取自定义分类文章数量总数

在悟空搜新版官网下方有一个网站数据统计的板块,包含整站文章数量统计、整站文章浏览量统计、单个分类文章数量统计,以及网站导航的文章数量统计。

很多朋友询问,网址导航是一个自定义分类,那么自定义分类的文章数量是如何统计的?下面悟空搜将分享获取自定义分类文章数量的方法。

其实方法很简单。在网上搜索后,不出意外找到大量相关内容,筛选后确定了 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;
}

通过上述方法,你就可以准确统计出网站导航(或其他任何自定义分类)下的文章总数了。

发表评论

您的邮箱不会公开。必填项已用 * 标注。