Вопрос

Я пытаюсь исключить все сообщения, в которых нет категории, присвоенной из основного цикла, я искал повсюду и нашел миллиард способов исключить некоторые категории или фильтр из конкретной категории, но не то, что мне нужно сделать, это это возможно?

Это было полезно?

Решение

Привет @Raffaele:

Функция wp_get_object_terms(...) может предоставить вам информацию, которая вам нужна. Я написал has_category($post_id) функция, которая может быть использована в цикле, как это:

<?php while ( have_posts() ) : the_post(); ?>
   <?php if (has_category($post->ID)): ?>
      <p><?php the_title(); ?></p>
   <?php endif; ?>
<?php endwhile; ?>

И вот has_category() Функция:

<?php
function has_category($post_id) {
  $has_category = false;
  $terms = wp_get_object_terms($post_id,'category');
  if (is_array($terms)) {
    foreach($terms as $index => $term)
      if ($term->slug=='uncategorized')
        unset($terms[$index]);
    $has_category = (count($terms)>0);
  }
  return $has_category;
}

Обратите внимание, что мой has_category() Функция относится к сообщениям 'uncategorized' Категория не имеет категории. Вероятно, есть более эффективные способы этого, но то, что вы видите выше, должно работать.

-Майк

Лицензировано под: CC-BY-SA с атрибуция
Не связан с wordpress.stackexchange
scroll top