显示帖子所属的子类别列表

时间:2014-06-09 作者:user57867

我有以下代码:

<?php
// List subcategories of category \'4\'
$subcategories = get_categories(\'&child_of=4\'); 
foreach ($subcategories as $subcategory) {
  echo sprintf(\' <a href="%s">%s</a> <span class="sep">•</span>\', get_category_link($subcategory->term_id), apply_filters(\'get_term\', $subcategory->name));
}
?>
此代码从类别id 4检索子类别列表。我在post循环中添加了此代码(have_posts()). 它在每个post\'s box.

我想要的只是显示类别4中的子类别,它在那篇文章中被标记。它不应该显示为所有帖子标记的所有类别中的所有子类别。

提前感谢

2 个回复
最合适的回答,由SO网友:Pieter Goosen 整理而成

这是我最近使用的一个函数(在codex中找到的代码的修改版本),用于显示帖子附加到的类别列表。

此函数首先获取帖子所属的父类别,然后将该信息反馈到wp_list_categories 删除父类别并获取属于该父类别的子类别列表

<?php 
$taxonomy = \'category\';

// get the term IDs assigned to post.
$post_terms = wp_get_object_terms( $post->ID, $taxonomy, array( \'fields\' => \'ids\' ) );
// separator between links
$separator = \', \';
$categories = get_the_category();
$parentid = $categories[0]->category_parent;

if ( !empty( $post_terms ) && !is_wp_error( $post_terms ) ) {

    $term_ids = implode( \',\' , $post_terms );
    $terms = wp_list_categories( \'title_li=&style=none&echo=0&child_of=\' . $parentid . \'&taxonomy=\' . $taxonomy . \'&include=\' . $term_ids );
    $terms = rtrim( trim( str_replace( \'<br />\',  $separator, $terms ) ), $separator );

    // display post categories
    echo  $terms;
}
?>

SO网友:engelen

为此,您应该删除符号and(用于连接多个参数)并使用parent 而不是child_of, 因此,仅列出子类别(而不是更深的嵌套类别):

$subcategories = get_categories( \'parent=4\' );

结束

相关推荐

使用Get_Categories显示类别的图像,或显示任何子帖子中的图像

我正在使用get\\u categories列出父类别的子类别。我想使用get\\u categories输出将图像添加到子类别。我可以从我正在使用get\\u categories的类别的子类别(即父类别的子类别)的任何帖子中获取特色图像。我不想显示任何其他孙儿信息,只想从每组类别的孩子中获得一张特色图片我当前使用的代码是$args = array(\'child_of\' => 1 ); $categories = get_categories($args); forea