If Custom Taxonomy

时间:2018-03-17 作者:iwillbeawebdeveloper

我为我的帖子设置了一个自定义分类法,名为$type. 如果$type == \'roast\'.

<?php $number = 1; ?>
<!-- the loop -->
<?php while ( $wpb_all_query->have_posts() ) : $wpb_all_query->the_post(); ?>
    <?php $type = get_the_term_list( $post->ID, \'type\', \'\' );
    echo $type;                         
    if ($type == "roast") { ?>
        <li><?php echo $number . \'. \'; $number++;?>
            <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
            <span><?php echo get_the_term_list( $post->ID, \'rating\', \'\' ); ?></span>
            <span><?php echo get_the_term_list( $post->ID, \'price\', \'\' ); ?></span>
        </li>
    <?php } 
if (in_array(\'roast\', $type)) { echo "hello"; }
?>
我先回显$type, 作为一种测试,这确实反映了“烘烤”。

但是我的if语句,以及后来尝试使用in_array, 不要像预期的那样回声。

谁能告诉我我做错了什么?

1 个回复
SO网友:Jacob Peattie

get_the_term_list() 返回给定帖子上分类术语列表的HTML字符串。如果在可选参数中不提供值,则如下所示:

<a href="http://example.com/type/roast/" rel="tag">Roast</a> <a href="http://example.com/type/type2/" rel="tag">Type 2</a>
所以$type == \'roast\' 不会为true,因为该值与\'roast\'.

即使它返回如下数组array( \'roast\' ) 那不是真的,因为\'roast\' 不等于array( \'roast\' ).

如果要检查帖子在分类法中是否有给定的术语,请使用has_term() 功能:

if ( has_term( \'roast\', \'type\' ) ) {

}

结束

相关推荐

Loop inside query

我有一个数组来存储分类法和查询术语,但我不能使用foreach在tax\\u查询中循环我的数组。我拿到了505内线。 $query = array( \'post_type\' => $post_type, \'posts_per_page\' => -1, ); $query[\'tax_query\'] = array( \'relation\' => \'OR\