Intereting Posts
не может перетаскивать виджеты, так как wordpress 3.2.1 Как долго «как можно дольше» в wp_cache_set ()? Как добавить стиль в ссылку категории? Какой файл мне создать в моей теме WordPress, чтобы показать все сообщения, принадлежащие определенной категории? Избегайте или корректируйте комментарии / ограничения скорости и 429 ошибок URL-адрес сайта WordPress изменен; как исправить это без доступа к базе данных? Создание настраиваемой разбивки на страницы для многостраничного сообщения в блоге Добавить тип файла Как прекратить отсоединение изображений при удалении сайта или пользователя Лучший способ узнать, активна ли учетная запись пользователя, используя только базу данных Изменение wp_link_pages () на кнопки «Следующая страница» и «Предыдущая страница»? Помощь с is_page () и вызов css для определенных страниц в дочерней теме Почему Custom Nav Men генерирует так много классов в элементах списка? Могу ли я это сделать? Запрос с использованием строки из настраиваемого поля в качестве значения массива Условный widget_form_callback

«НЕ ТОЛЬКО В» операторе запросов таксономии?

У меня есть несколько пользователей, добавляющих контент в категории с ограничениями (используя RoleScoper) в моей установке WordPress, которые не отображаются на главной странице (пользовательский шаблон с query_posts() ).

Я ищу способ «продвинуть» представленный контент на домашнюю страницу, добавив его в другую категорию.

Мой код цикла выглядит так:

 <?php query_posts($query_string . '&cat=-37'); if (have_posts()): while (have_posts()): the_post(); ?> 

Это исключает все должности категории 37. Однако, даже если я добавлю сообщение в другую категорию, оно все равно будет исключено.

Есть ли способ исключить пост, если он принадлежит только к одной категории?

Нет простого способа сделать это с помощью WP_Query() . В зависимости от того, сколько у вас категорий, следующее может не быть хорошей идеей. Если у вас есть ~ 20, вы можете быть в порядке. Таким образом, вместо того, чтобы говорить «все сообщения, исключая из них в 37», вы должны «получить меня во всех терминах (не указав term_id 37»).

Для этого вам нужно использовать category__in для всех ваших других категорий:

 // Get all the category IDs (except 37) $categories = get_terms( 'category', array( 'exclude' => array( 37 ), 'fields' => 'ids' ) ); query_posts( array( 'category__in' => $categories ) ); 

Это даст вам все сообщения, которые находятся в категории, отличной от / aswel, как 37. Однако при этом в большом количестве категорий начнется замедление запроса (например, я думаю +40 000 сообщений).