Wordpress:从the_terms()中排除一个术语

时间:2013-12-27 10:25:52

标签: php wordpress

我正在为客户使用主题。

要显示分类后,主题使用the_terms()。它运作良好。但我有一个我不想展示的特色类别。所以基本上,我需要一些东西来检查该函数的当前术语!=“特色”(整个模板上使用the_terms())。

我阅读了codex(http://codex.wordpress.org/Function_Reference/the_terms#Parameters),但没有关于排除特定条款的内容......

代码(没有帮助,但有人问我):

<?php the_terms($post->ID, 'portfolio_category', '', ', ', ''); ?>

任何帮助?

编辑: 现在我可以用以下内容过滤条款:

add_filter('get_the_terms', 'modify_term_list', 1);
  function modify_term_list($terms){
  foreach($terms as $term_index => $term_object){
    if($term_object->name === 'A la une'){
      unset($terms[$term_index]);
      return $terms;
    }
  }
}

术语“A la Une”(特色)不再显示。但是在我得到的4个术语中,现在只显示了一个。

2 个答案:

答案 0 :(得分:1)

此代码不会列出像“测试”这样的特定术语

add_filter('get_the_terms', 'modify_term_list', 1);
function modify_term_list($terms){
   foreach($terms as $term_index => $term_object){
    if($term_object->name == 'Test'){
        unset($terms[$term_index]);
        return $terms;
    }
   }
}

您可以将替换为 TERM NAME

答案 1 :(得分:0)

基于boom_Shiva的代码:

add_filter('get_the_terms', 'modify_term_list', 1);
 function modify_term_list($terms){
  foreach($terms as $term_index => $term_object){
   if($term_object->name === 'A la une'){

    unset($terms[$term_index]);

   }
   else {
    return $terms;
   }
  }
 }