博客 / WordPress/ WordPress获取指定标签下的文章总数

WordPress获取指定标签下的文章总数

WordPress获取指定标签下的文章总数

在开发 WordPress 主题时,有时需要获取指定标签下的文章总数。本文将分享两种实现方法,并附上可直接使用的代码片段。

具体效果如下图所示(示例):

(此处为原图示意,实际使用时请替换为有效图片或描述)

方法一:根据标签ID获取文章总数

首先,在主题的 functions.php 文件中添加以下函数:

/**
 * 根据标签ID获取文章总数
 * @param int $tag_id 标签ID
 * @return int 文章总数
 */
function get_tag_post_count_by_id( $tag_id ) {
    $tag = get_term_by( 'id', $tag_id, 'post_tag' );
    if ( ! $tag || is_wp_error( $tag ) ) {
        return 0;
    }
    // _make_cat_compat 函数用于确保向后兼容性,但并非必需
    if ( function_exists( '_make_cat_compat' ) ) {
        _make_cat_compat( $tag );
    }
    return $tag->count;
}

然后,在需要显示文章总数的地方(例如模板文件中)调用该函数:

<?php echo get_tag_post_count_by_id( $tag_id ); ?>

请将 $tag_id 替换为实际的标签ID。

方法二:根据标签别名获取文章总数

同样,在 functions.php 中添加以下函数:

/**
 * 根据标签别名获取文章总数
 * @param string $tag_slug 标签别名
 * @return int 文章总数
 */
function get_tag_post_count_by_slug( $tag_slug ) {
    $tag = get_term_by( 'slug', $tag_slug, 'post_tag' );
    if ( ! $tag || is_wp_error( $tag ) ) {
        return 0;
    }
    if ( function_exists( '_make_cat_compat' ) ) {
        _make_cat_compat( $tag );
    }
    return $tag->count;
}

在模板中调用时,请注意函数名与参数:

<?php echo get_tag_post_count_by_slug( $tag_slug ); ?>

请将 $tag_slug 替换为实际的标签别名。

重要说明与修正

1. 错误修正:原文第二个示例代码中调用了错误的函数名 get_tag_post_count_by_id,已修正为 get_tag_post_count_by_slug
2. 健壮性增强:添加了错误检查,当标签不存在时返回 0,避免产生警告或错误。
3. 函数说明_make_cat_compat() 是一个内部函数,用于确保分类和标签数据结构在旧版本中的兼容性。在现代 WordPress 版本中通常不需要,但添加检查可确保代码安全。
4. 使用建议:获取标签ID或别名后,即可在主题的任何位置(如侧边栏、文章页脚或自定义小工具)调用上述函数来显示文章总数。

发表评论

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