分类内容的Switch语句

时间:2015-04-08 作者:vlovsky

我试图检查帖子中的分类法是否与字符串匹配,但是我的代码不起作用,它总是输出第一项。。

   $i=get_the_term_list($post->ID,\'tax-athlete\');

   switch (has_term( $i, \'athlete\' )) {
        case "John Doe":
            echo "john";
            break;
        case "Mark Webber":
            echo "mark";
            break;
        case "Jane Smith":
            echo "jane";
            break;
        default:
            echo "author";
    }
我的普通代码只是显示运动员的作品。

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

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

您的代码完全颠倒和混乱。您要做的是检查特定术语,然后将其输入到get_the_term_list(), 而不是相反。此外,请评估您的切换是否为true。

我可能会首先在帖子中附加一个术语数组,然后检查我想要的术语是否在该数组中,以使我的陈述更有效率。为此,我将使用wp_get_post_terms() 只有当这是您测试的对象时,才能获得术语名称

说到这里,你可以试试这样的东西;(警告:未经测试)

$terms = wp_get_post_terms( $post->ID, \'TAXONOMY NAME\', array( \'fields\' => \'names\' ) );
switch (true) {
    case in_array( \'John Doe\', $terms ):
        $name = \'john\';
        break;
    case in_array( \'Mark Webber\', $terms ):
        $name = \'mark\';
        break;
    case in_array( \'Jane Smith\', $terms ):
        $name = \'jane\';
        break;
    default:
        $name = \'author\';
}

echo get_the_term_list( $post->ID, \'TAXONOMY NAME\', $name, \', \' );

结束

相关推荐

ACF Taxonomy Object term Null

我正在使用高级自定义字段插件在某些页面上放置分类法复选框。此复选框将过滤该页面上通过etc提取的数据。使用ACF网站上的示例(旨在使用术语对象输出)-<?php $terms = get_field(\'taxonomy_field_name\'); if( $terms ): ?> <ul> <?php foreach( $terms as $term ): ?> &l