WordPress get_the_terms():增强 WordPress 分类显示

get_the_terms 是什么?

get_the_terms() 函数用于WordPress 中检索与特定帖子或自定义帖子类型相关的术语(如类别、标签或任何其他分类法)。该函数返回一个术语对象数组,开发者可以精确地操作和显示这些分类术语,以便更好地控制它们在网站上的呈现方式。

图片[1]-如何使用 get_the_terms() 在 WordPress 中管理和显示分类术语

通过 get_the_terms(),可以轻松地获取与帖子相关的分类术语,进而根据需要显示、修改或管理这些术语。它是 WordPress 中非常有用的一个功能,可以让你以编程的方式操作分类数据,从而使网站内容更加丰富和结构化

get_the_terms 的常见用例

get_the_terms() 在实际应用中非常灵活,下面是一些常见的使用场景:

get_the_terms 的常见用例

显示帖子页面上的类别或标签

在 WordPress 中,最常见的用法之一是检索并显示帖子页面上的类别标签。以下是一个例子,展示了如何使用 get_the_terms() 获取并显示与某个帖子相关的类别:

$categories = get_the_terms( $post->ID, 'category' );
if ( $categories && ! is_wp_error( $categories ) ) {
    $category_list = array();
    foreach ( $categories as $category ) {
        $category_list[] = $category->name;
    }
    echo implode( ', ', $category_list );
}

此代码段会列出与指定帖子相关的所有类别,并以逗号分隔。

获取多个分类法

如果你需要检索多个分类法(例如同时检索“类别”和“标签”),可以将分类法名称作为数组传递给 get_the_terms()

$terms = get_the_terms( $post->ID, array( 'category', 'post_tag' ) );
if ( $terms && ! is_wp_error( $terms ) ) {
    foreach ( $terms as $term ) {
        echo '<p>' . $term->name . '</p>';
    }
}

这段代码会显示指定帖子关联的所有分类法术语,不论它们是类别还是标签。

使用自定义分类法

如果你使用的是自定义分类法,get_the_terms() 也能方便地帮助你获取相关的术语。例如,假设你有一个名为“类型”的自定义分类法,分配给一个名为“电影”的自定义帖子类型:

$genres = get_the_terms( $post->ID, 'genre' );
if ( $genres && ! is_wp_error( $genres ) ) {
    foreach ( $genres as $genre ) {
        echo '<p>' . $genre->name . '</p>';
    }
}

为了更好地组织这些电影内容,你创建了一个名为“剧情”的自定义分类法,来对电影进行分类(如“动作”,“喜剧”,“科幻”等)。

电影进行分类

处理没有术语的情况

如果某个帖子没有与之关联的术语,或者出现错误,get_the_terms() 会返回 false。为了避免潜在问题,检查 false 是一个好的实践:

$terms = get_the_terms( $post->ID, 'category' );
if ( $terms && ! is_wp_error( $terms ) ) {
    // 显示术语
} else {
    echo '未找到任何术语。';
}

自定义术语输出

当使用 get_the_terms() 获取术语后,你可以根据需要定制其显示方式。例如,可以为术语添加链接应用样式显示与术语相关的其他信息。以下是一个将术语链接到其分类存档页面的例子:

$terms = get_the_terms( $post->ID, 'category' );
if ( $terms && ! is_wp_error( $terms ) ) {
    foreach ( $terms as $term ) {
        echo '<a href="' . get_term_link( $term ) . '">' . $term->name . '</a>';
    }
}

通过简单的自定义,可以为访问者提供更加友好的术语呈现。

处理术语计数和层次分类法

在使用分类法时,展示更多关于术语的详细信息(例如术语的层次结构或每个术语下的帖子数量)非常有帮助。以下是一些处理术语计数和层次关系的方法:

  • 层次分类法

例如,在类别这种分层分类法中,术语可能有父子关系。你可以检查术语的父术语 ID,并据此显示其层级关系:

$categories = get_the_terms( $post->ID, 'category' );
if ( $categories && ! is_wp_error( $categories ) ) {
    foreach ( $categories as $category ) {
        if ( $category->parent != 0 ) {
            echo '<strong>' . $category->name . '</strong> (Parent)';
        } else {
            echo $category->name;
        }
    }
}
  • 术语计数

另一个常见的需求是显示与每个术语相关联的帖子数量,这对于展示某些术语的流行度非常有用:

$tags = get_the_terms( $post->ID, 'post_tag' );
if ( $tags && ! is_wp_error( $tags ) ) {
    foreach ( $tags as $tag ) {
        echo $tag->name . ' (' . $tag->count . ') ';
    }
}

这段代码会显示标签名称,并附上该标签下的帖子数量。

图片[4]-如何使用 get_the_terms() 在 WordPress 中管理和显示分类术语

性能注意事项

尽管 get_the_terms() 是一个非常强大的工具,但在处理大型网站或包含大量术语的帖子时,性能仍然需要考虑。以下是一些性能优化建议:

  • 缓存术语结果:特别是在高流量页面或循环中,缓存术语检索结果可以显著提升性能。
  • 避免不必要的查询:如果术语数据不会频繁更改,避免频繁调用 get_the_terms(),以减少对数据库的压力。

常见问题解答

  • 如何使用 get_the_terms() 检索类别或标签?
    只需传递帖子 ID 和分类法(如“类别”或“帖子标签”)即可检索相关术语。
  • 如何显示标签或其他分类法的术语计数?
    通过 get_the_terms() 返回的术语对象,可以轻松显示与每个术语关联的帖子数量。
  • get_the_terms() 可以与自定义分类法一起使用吗?
    是的,get_the_terms() 完全支持自定义分类法,你可以像使用内置分类法一样使用它来检索任何自定义分类法的术语。
  • 如何定制 get_the_terms() 检索到的术语输出?
    你可以添加链接、样式或其他自定义元素,使术语显示更加符合你的网站需求。


联系我们
文章看不懂?联系我们为您免费解答!免费助力个人,小企站点!
电话:020-2206-9892
QQ咨询:1025174874
邮件:info@361sale.com
工作时间:周一至周五,9:30-18:30,节假日休息
© 转载声明
本文作者:xiesong
THE END
喜欢就支持一下吧
点赞7 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容