Как использовать pre_get_posts для установки количества записей на странице?
Я пытаюсь использовать pre_get_posts для установки количества записей на странице для одного термина в таксономии. Меня смущает момент, как правильно указать термин, к которому нужно применить pre_get_posts.
Вот мой код:
function filter_press_tax( $query ){
if( $query->query_vars['tax_query']['taxonomy'] == 'press' && $query->query_vars['tax_query']['terms'][0] == 'press' ):
$query->query_vars['posts_per_page'] = 5;
return;
endif;
}//end filter_press_tax
Я не совсем понимаю, как получить доступ к таксономии и термину в $query. Да, у таксономии и термина одинаковые названия. Это плохая идея? У меня нет пользовательского запроса в шаблоне taxonomy-press-press.php для 'tax_query' - может быть, в этом проблема?
Буду благодарен за любую помощь! Спасибо

Вы почти у цели, дружище. Попробуйте вот так:
<?php
add_action('pre_get_posts', 'filter_press_tax');
function filter_press_tax( $query ){
if( $query->is_tax('press') && $query->has_term('press')):
$query->set('posts_per_page', 5);
return;
endif;
}
?>
Вы можете использовать любой условный тег или любой аргумент, который можно передать в WP_Query
, чтобы проверить ваше условие или установить новое значение через pre_get_posts
. Также попробуйте $query->get('taxonomy')
/ $query->get('term')
.
И ознакомьтесь с этим для методов set и get объекта $query
.

Спасибо! is_tax работает отлично, но я всё ещё не могу установить термин. has_term выдает ошибку, а использование get('term') не применяет posts_per_page. Пробовал использовать get('term') == slug, id и name, но безрезультатно. Также пробовал $query->query_vars['term'], но тоже не сработало. Должно быть, я всё ещё что-то упускаю. Изучил $query stdClass Obj здесь: http://codex.wordpress.org/Plugin_API/Action_Reference/pre_get_posts и не увидел значений 'term' или has_term в списке. Всё работает, пока я не пытаюсь установить термин. Странно.

Всегда пожалуйста! Ты хочешь установить термин? Давай я посмотрю и разберусь, как это можно сделать.

Спасибо! Пока всё работает нормально, и мой другой термин в таксономии press, называющийся online reviews, тоже не слишком затронут. Буду ждать, если ты найдёшь что-то полезное. :)
