Как использовать WP_Query для исключения определенного тега?

13 июн. 2015 г., 20:25:55
Просмотры: 13.5K
Голосов: 4

У меня есть рабочий код для запроса по определенной категории и слагу тега:

$args = array(
'category_name' => $cat_name,
'tag' => $tag_name,
'post__not_in' => $sticky
 );

 $my_query = new WP_Query( $args );

Не могу понять, как исключить определенный тег из запроса. Нужен ли ID тега? Как его получить? Заранее спасибо.

1
Комментарии

Хотелось бы отметить, что производительность поисковых запросов, таких как post__not_in, не очень хорошо масштабируется на больших сайтах

Tom J Nowell Tom J Nowell
13 июн. 2015 г. 20:35:35
Все ответы на вопрос 2
0

Используйте параметр tag__not_in. Для этого параметра необходимо использовать ID тегов.

$args = array(
    'category_name' => $cat_name,
    'tag' => $tag_name,
    'post__not_in' => $sticky,
    'tag__not_in' => array($tag_id_1, $tag_id_2)
);

$my_query = new WP_Query( $args );
13 июн. 2015 г. 20:29:27
4

Вам нужно использовать параметр 'tag__not_in', и для этого необходим ID тега. Ознакомьтесь с функцией https://codex.wordpress.org/Function_Reference/get_term_by для получения объекта термина, который содержит ID.

13 июн. 2015 г. 20:29:39
Комментарии

Спасибо за ваш ответ. Я не понимаю, как получить ID тега из этой функции:

user45758 user45758
14 июн. 2015 г. 00:07:58

$tag = get_term_by('name', 'my-sticky', 'post_tag'); echo 'the term id is '. $tag;

user45758 user45758
14 июн. 2015 г. 00:11:09

echo 'the term id is ' . (int) $tag->term_id;

websupporter websupporter
14 июн. 2015 г. 00:30:13

Я получаю term_id равным 0. Может ли это быть корректным? Как это можно проверить?

user45758 user45758
14 июн. 2015 г. 16:06:27