做一些事情如果帖子有一个来自自定义分类的术语

时间:2017-10-28 02:11:16

标签: php wordpress if-statement conditional custom-taxonomy

我有一个自定义分类法"图书馆"其中有2个术语:"小说"和"小说"

我正在尝试执行一项功能,具体取决于我的帖子中包含的这个分类中的术语。

因此,如果帖子被分配到"小说",我需要//do something,如果帖子被分配到"小说"我需要//do something else

最初,我一直在尝试使用is_tax,但这似乎并没有按预期工作:

if ( is_tax('library','fiction' ) ) {   
    //do something
  } elseif ( is_tax('library','novels' ) ) {    
    //do something else
  }

我也试过了has_term,但这对我来说也不起作用。

if ( has_term ('fiction','library' ) ) {    
        //do something
      } elseif ( has_term ('novels','libary' ) ) {  
        //do something else
      }

所以我想试试wp_get_post_terms,但我不确定如何执行这个。

我正在尝试这个:

$terms = wp_get_post_terms( $post->ID, 'library' );
foreach ( $terms as $term ) {
        if($term->name == 'fiction') {
            // do something
        }
        elseif($term->name == 'novels') {
            // do something else
        }
}

我错过了什么吗?特别是这最后一个?

1 个答案:

答案 0 :(得分:0)

通过使用get_categories()获取您的类别名称;功能

$category_args = array(
    'type'                     => 'yourposttypename',
    'child_of'                 => 0,
    'parent'                   => 0,
    'orderby'                  => 'id',
    'order'                    => 'ASC',
    'hide_empty'               => 0,
    'hierarchical'             => 1,
    'exclude'                  => '',
    'include'                  => '',
    'number'                   => '',
    'taxonomy'                 => 'library',
    'pad_counts'               => false 

); 
$categories = get_categories( $category_args );
if(count($categories)>0)
{

        foreach ( $categories as $category ) {
           if($category->name=='fiction')
           {
                // do something
           }
           else  if($category->name=='novels')
           {
                // do something else
           }
        }

}