输出单个帖子自定义分类子术语

时间:2015-02-19 作者:Troy Templeman

我正在尝试在单个帖子页面上输出指向指定给单个帖子的自定义分类的链接。我试过其他方法,但都会出错。这是我能得到的最接近的。它只需要找到当前帖子的术语,而不是输出分类法的所有术语。

<?php
    $term_id = 6;
    $taxonomy_name = \'categories\';
    $termchildren = get_term_children( $term_id, $taxonomy_name );
        foreach ( $termchildren as $child ) {
        $term = get_term_by( \'id\', $child, $taxonomy_name );
        echo \'<a href="\' . get_term_link( $child, $taxonomy_name ) . \'">\' . $term->name . \'</a> \';
    }
    ?>
@Howdy\\u McGee我尝试了以下代码,“采用状态”是自定义分类“类别”的术语。我正在寻找“领养身份”的孩子。它不输出任何内容。也没有错误。

<?php get_the_terms( $post->ID, \'adoption-status\' ); ?>
下面的代码几乎可以工作,但显示了当前帖子的所有“类别”,而不仅仅是术语(或子类别)“采用状态”的类别

<?php echo get_the_term_list( $post->ID, \'categories\', \'\', \'\', \'\' );?>

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

我希望我能理解你的问题。您正在查找与单个帖子相关的所有术语,但仅查找与adoption-status 学期

要获取特定帖子中的所有术语,您可以使用wp_get_post_terms(). 这将返回与帖子相关的特定分类法的所有术语。

您还需要利用get_term_children() 从您的adoption-status 学期

一旦你掌握了所有这些,就只需比较两者,只需将与帖子相关的术语和子术语返回给给定的术语。

您可以尝试以下操作(注意:相应地更改术语ID和分类名称)

$child_terms = get_term_children(21, \'category\');
$all_terms   = wp_get_post_terms($post->ID, \'category\');

foreach ( $all_terms as $term ) {

    if( !in_array($term->term_id, $child_terms ) ) 
        continue;

    echo $term->name;

}

结束

相关推荐