在WP_QUERY循环中获取分类

时间:2018-11-18 作者:Alena

我已经写下了我的习惯WP_Query 并使用循环显示帖子内容。我使用get_the_category() 显示当前帖子的类别,效果良好。现在,对于某些帖子类型,有自定义的分类法,而不是类别。

Code to get categories:

$categories = get_the_category();
   if(!empty($categories)){
      foreach($categories as $index => $cat){
         echo $cat->name;
      }
   }
现在,我需要提取所有分类法并以逗号分隔的格式打印它们。

我试过这个:

$taxonomies = get_the_taxonomies();
if(!empty($taxonomies)){
   foreach($taxonomies as $taxonomy){
         echo $taxonomy;
   }
}
它以这种格式工作并显示“分类标签:术语(超链接)”。如果术语不止一个,则在术语之间添加“and”。我只需要术语,如果它们是多个,那么它们应该用逗号分隔。

want to know:

实现这些结果的最佳方法是否建议使用上述方法regex 提取价值谢谢

2 个回复
最合适的回答,由SO网友:Krzysiek Dróżdż 整理而成

我想,你的代码的第一个问题是get_the_taxonomies 功能,它将:

仅使用名称检索帖子的所有分类法。

因此其结果如下:

Array
(
    [0] => category
    [1] => post_tag
    [2] => post_format
)
而且我很确定,您希望从所有分类法中获得分配给给定帖子的术语,而不是分类法名称。。。

所以你很可能想做这样的事情:

$terms = wp_get_object_terms( get_the_ID(), array_keys( get_the_taxonomies() ) );
foreach ( $terms as $i => $term ) {
    echo ($i ? \', \' : \'\') . $term->name;
}
快速回答您的问题:

上述可能的解决方案之一——很难说这是不是最好的

SO网友:De Coder

看看这些:

$taxonomies = get_post_taxonomies( );
print_r( $taxonomies );
echo implode( $taxonomies, \', \' );

结束

相关推荐

get the custom taxonomy name?

在我的functions.php 我有个钩子:add_action( \'woocommerce_before_single_product\', \'display_category_list\',20 ); function display_category_list() { wc_get_template( \'woocommerce/single-product/single-product-top- content.php\' );