Conditional Statements

时间:2013-10-25 作者:luckyrajiv

我已经创建了名为-listing的自定义帖子类型

还创建了自定义分类-listingcategories

在列表类别中,我创建了两个类别

音乐2。功能现在我想为音乐类别创建一个条件语句

我正在尝试,但不起作用

<?php global $post;
if (($post->post_type == \'listing\') && is_category(\'music\')) { 
//statement
} ?>
我用对了吗is_category() ?

请帮忙。

感谢拉吉夫

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

         <?php if( has_term( \'music\', \'listingcategory\' ) ) {
                        //content1
                        }
                        else
                        {
                        //content2
                        }
         ?>
正在使用此http://codex.wordpress.org/Function_Reference/has_term

SO网友:Tim Clark

Cheers guy的这一点对我帮助很大,我使用了下面的方法,效果很好,任何改进都值得赞赏。

    <?php 
          $cat1 = array(\'category1\', \'category2\');

           if( has_term( $cat1, \'my_custom_post_type\' ) ) {
                  //do something
         } else { //do somthing else}?>

SO网友:Chip Bennett

这个is_category() 条件适用于特定的分类法:category. 这个category 默认情况下,仅为post 岗位类型。

您正在使用custom post type - listing - 和acustom taxonomy - listingcategories. 因此,您将无法使用is_category() 为它们构造条件语句。

根据需要,您可以使用以下选项之一:

  • is_tax( $taxonomy, $term ): 退货true 如果当前页面是分类法存档索引:

    is_tax( \'listingcategories\', \'music\' )
    
  • has_term( $taxonomy, $term ): 退货true 如果当前的post应用了指定的分类术语:

    has_term( \'listingcategories\', \'music\' )
    
    因此,与原始代码的模拟是:

    <?php global $post;
    if ( ($post->post_type == \'listing\') && is_tax( \'listingcategories\', \'music\' ) ) { 
    //statement
    } ?>
    
    并使用get_post_type():

    <?php
    if ( \'listingcategories\' == get_post_type() && is_tax( \'listingcategories\', \'music\' ) ) {
        // statement
    }
    ?>
    

结束

相关推荐