Исключить категорию Wordpress по имени из блога - PullRequest
2 голосов
/ 27 июня 2011

У меня есть блог WP со списком категорий. У меня есть специальный шаблон, который применяется к категории «Новости», и все в порядке, но теперь мне нужно убедиться, что сообщения этой категории не включены в основной блог. Я попробовал несколько битов, и это не сработало для меня. Кто-нибудь какие-нибудь предложения?

Поскольку я работаю в среде dev / test / prod, которая была настроена разными людьми (... le sigh ...), одни и те же категории имеют разные идентификаторы, поэтому я надеялся сделать это вне название категории.

Приветствия

T

Ответы [ 3 ]

11 голосов
/ 27 июня 2011

Спасибо за это, Яннис.Я знал, что смогу сделать это с отрицательным типом категории query_posts.Спасибо за то, что поставили меня на правильный путь.

Мне нужно отработать это для названия категории, это единственное условие этого запроса.Чтобы сделать это, я получил идентификатор категории из имени:

$exclude = get_cat_ID('News');
$q = 'cat=-'.$exclude;
query_posts($q);

Поместил это в начало loop.php и решил мою проблему.

Еще раз спасибо всем, люблю Stackoverflow!

2 голосов
/ 27 июня 2011

Исключить категорию из цикла довольно просто, вам просто нужно передать идентификатор категории в качестве параметра, например, чтобы исключить категории с идентификаторами 3 и 8:

<?php query_posts('cat=-3,-8'); ?>

В вашем случае этоневозможно исключить категорию по ее имени (параметр category_name).

Вы также можете попробовать использовать плагин, если это проще для ситуации с несколькими средами: http://wordpress.org/extend/plugins/simply-exclude/

1 голос
/ 14 сентября 2013

Я сделал это совершенно по-другому, и использовал только слагов, как так:

$featured_args = array(
    'post_type' => 'news', // I have a custom post type, 'news'
    'tax_query' => array (
        array(
            'taxonomy' => 'subject', // I have a custom taxonomy, 'subject'
            'field' => 'slug',
            'terms' => array('politics', 'economy-and-business', 'disasters'), 
            'operator' => 'NOT IN' // This operator ensures that the values listed in 'term' are excluded
        )
    ),
    'post_status' => 'publish',
);

$featured_query = new WP_Query($featured_args);

Обратите внимание, что существует запись массива, называемая tax_query , которая также содержит другой массив, содержащийпараметры, называемые operator , и этот operator имеет значение NOT IN , что исключит значения в поле term в противоположностьк их включению.

ВАЖНОЕ ПРИМЕЧАНИЕ: Обращаем ваше внимание, что если сообщение содержит два термина таксономии, и один из этих терминов включен в список исключаемых терминов, то это не будетчасть результата.

Подробнее читайте здесь: http://codex.wordpress.org/Class_Reference/WP_Query

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...