2012-04-11 3 views
1

У меня есть пользовательский тип сообщения, в котором у меня есть настройка пользовательских таксономий.Исключить условия из пользовательской таксономии?

Я хочу распечатать категории (пользовательская таксономия), в которые входит сообщение, но исключить его. Однако я не могу найти решение, чтобы исключить категорию. Вот мой код, чтобы вывести список категорий типа таможенного поста находится в рубриках:

<?php the_terms($post->ID, 'critter_cat', 'Critter Type: ', ', ', ' '); ?> 

Как исключить определенную категорию?

Спасибо.

+0

Вы можете разместить код, использованный для регистрации пользовательской таксономии? – Robbie

ответ

2

Вы можете создать функцию в вашем файле functions.php, который вызывает get_the_terms, чтобы вернуть список терминов в виде массива, а затем удалить элемент, который вам не нужен.

Дайте этому попытку:

function get_excluded_terms($id = 0, $taxonomy, $before = '', $sep = '', $after = '', $exclude = array()) { 
    $terms = get_the_terms($id, $taxonomy); 

    if (is_wp_error($terms)) 
     return $terms; 

    if (empty($terms)) 
     return false; 

    foreach ($terms as $term) { 
     if(!in_array($term->term_id,$exclude)) { 
      $link = get_term_link($term, $taxonomy); 

      if (is_wp_error($link)) 
       return $link; 

      $excluded_terms[] = '<a href="' . $link . '" rel="tag">' . $term->name . '</a>'; 
      } 
    } 

    $excluded_terms = apply_filters("term_links-$taxonomy", $excluded_terms); 

    return $before . join($sep, $excluded_terms) . $after; 
} 

, а затем использовать его как это:

<?php echo get_excluded_terms($post->ID, 'critter_cat', 'Critter Type: ', ', ', ' ', array(667)); ?> 
+0

Я не думаю, что это то, что мне нужно извините, может быть, я не был ясно выше? В настоящее время мои сообщения показывают, что они находятся в категории (пользовательская таксономия), например, A, B, C. Но я хотел бы исключить A, поэтому он отображает только B, C. Надеюсь, это имеет смысл! –

+0

Итак, когда вы вызываете 'the_terms', он возвращает' A', 'B',' C', и вы хотите, чтобы он просто возвращал 'B',' C'? – Robbie

+0

Да, Робби, вот и все, спасибо. Возможность исключить категорию (пользовательская таксономия) по идентификатору или по имени. –

Смежные вопросы