显示自定义分类法列表,并以 & 作为最终分隔符

问题描述 投票:0回答:1

我正在尝试在 Wordpress 中输出自定义分类法列表,其中最终分隔符是 &。

我的帖子可能属于三种潜在的分类法:类别 1、类别 2 和类别 3。有些帖子属于 1 类别,有些属于 2 类别,有些属于 3 类别。

我想要的是在页面上包含该帖子所属的类别列表。但是,如果帖子属于所有三个类别,我不希望它说:“类别 1、类别 2、类别 3”。

我想说:“类别 1、类别 2 和类别 3”。

我的分类法是“项目类别”,我正在尝试使用 wp_sprintf 来输出列表。但我无法让它正常工作。

这是我目前的代码。它没有输出任何内容,但我不明白为什么不输出。

<?php

  $post = get_queried_object_id();
  $term_obj_list = get_the_terms( $post, 'project-category');
  echo wp_sprintf_l( '%l', $term_obj_list);

?>

我也关注了这个旧问题。当有多个类别时它会起作用,但当只有一个类别时它仍然会在其前面添加“and”。

php wordpress custom-taxonomy
1个回答
0
投票

您当前的代码存在一些错误。要显示以逗号分隔的分类术语列表,并在最后一个术语之间使用“and”,处理只有一个术语的情况,请尝试以下操作:

$term_names = wp_get_post_terms(get_the_ID(), 'project-category', ['fields' => 'names']);

if ( ! is_wp_error($term_names) ) {
    echo count($term_names) > 1 ? wp_sprintf_l( '%l', $term_names) : ($term_names ? current($term_names) : '');
}

应该会更好。

© www.soinside.com 2019 - 2024. All rights reserved.