如果存在分类,则显示一些代码

时间:2012-03-21 作者:Allen

我想在single中插入以下自定义代码。phpcan I设置了一个条件,即如果存在特定的分类法,则显示并使用此代码,否则不会;

<div id="archivebox"> All courses in<?php echo get_the_term_list($post->ID,\'country\', \' \', \' \', \'\' ) ; ?><br>All courses in<?php echo get_the_term_list($post->ID,\'institute\', \' \', \' \', \'\' ) ; ?><br>All <?php echo get_the_term_list($post->ID,\'subject\', \' \', \' \', \'\', \'\' ) ; ?> courses worldwide<br>All<?php echo get_the_term_list($post->ID,\'qualification\', \' \', \' \', \'\' ) ; ?> courses worldwide<br>Alphabetical List: <?php echo get_the_term_list($post->ID,\'alphabetical\', \' \', \' \', \'\' ) ; ?> worldwide</div>

2 个回复
最合适的回答,由SO网友:Tom J Nowell 整理而成

如果要检查分类是否存在,请使用taxonomy_exists( $taxonomy ):

<?php
if(taxonomy_exists(\'country\')){
     echo \'All courses in\' . get_the_term_list($post->ID,\'country\', \' \', \' \', \'\' );
}
?>
等等。。。

编辑如果要检查当前帖子是否属于分类法,而不是检查分类法是否存在,请使用get_the_term_list( $post->ID, $taxonomy ):

<?php
if( false != get_the_term_list( $post->ID, \'country\' ) ) {
     echo \'All courses in\' . get_the_term_list($post->ID,\'country\', \' \', \' \', \'\' );
}
?>

SO网友:Max Yudin

避免duplicate post 我在这里回答:

<?php
$my_terms = array(\'country\', \'region\', \'city\');
$terms_obj =  wp_get_object_terms($post->ID, $my_terms);
if( !empty($terms_obj) ) {
    if( !is_wp_error( $terms_obj ) ) {
        echo \'<div id="archivebox">All courses in \';
        foreach($terms_obj as $term) {
            foreach($my_terms as $my_term) {
                echo \'<a href="\'.get_term_link($term->slug, $my_term).\'">\'.$term->name.\'</a> \';
            }
        }
        echo \'</div>\';
    }
}
?>
根据以下评论编辑。

结束

相关推荐