获取帖子的术语,但前提是它们也是特定术语的子项

时间:2021-05-13 作者:friendly_llama

我已经在我的自定义帖子类型存档页面上成功运行了以下代码。我唯一的问题是,我想要那篇文章的“book\\u cat”分类术语列表,但前提是它们也是id为5的Taxononomy术语的子项。

尝试将帖子ID用作参数无效。谁能告诉我我做错了什么吗?

$args = array( \'hide_empty\' => \'0\',\'taxonomy\' => \'book_cat\', \'child_of\' => 5);
$categories = get_terms($args);
if($categories){
    echo \'<ul class="characters">\';
    foreach($categories as $category) {
        $link = get_term_link($category);
        echo \'<li>\';
        $size = "thumbnail";
        $image = get_field(\'main_image\', \'category_\'.$category->term_id);
        echo \'<a href="\'.$link.\'">\';
        echo wp_get_attachment_image( $image, \'thumbnail\', "", ["class" => "character"] );
        echo \'</a>\';
        echo \'<span class="cat-title"><a href="\'.$link.\'">\' . $category->name . \'</a></span>\';
        echo \'</li>\';
    } 
    echo \'</ul>\';
}    

1 个回复
最合适的回答,由SO网友:anton 整理而成

如果我理解正确,现在您可以获得id=5的所有术语的子术语,但您只需要显示此列表中的术语,这些术语附在帖子中。

get\\u terms()
检索给定分类法或分类法列表中的术语。

尝试使用wp_get_post_terms() 相反,它允许您设置帖子id。
请确保$post->;ID可用。

wp\\u get\\u post\\u terms()
检索文章的术语。

$args = array( \'hide_empty\' => \'0\',\'taxonomy\' => \'book_cat\', \'child_of\' => 5);
$categories = wp_get_post_terms($post->ID, \'book_cat\', $args);
//rest of your code goes here.....