Нужно чтобы на странице категорий выводились посты только с определенным тегом, при этом посты самой категории не должны учитываться. Т.е. нужно изменить содержимое основного запроса. Если делать запрос через new wp_query то ломается пагинация. На данный момент есть вот такой код в файле functions.php:
function pre_get_post_by_tag( $query )
{
if ( is_category() && $query->is_main_query() ) {
$query->set('tag', 'boys');
}
}
add_action('get_post_by_tag', 'pre_get_post_by_tag' );
boys - название тега.
и вызов в файле archive.php
do_action('get_post_by_tag');
сейчас выдает ошибку "Fatal error: Call to a member function is_main_query() on string in...."
Как исправить ошибку? Правильно ли изменять запрос таким образом? Может есть какието другие способы добиться желаемого? Буду рад любой помощи.
add_action('get_post_by_tag', 'pre_get_post_by_tag' );
Похоже надо
add_action('pre_get_posts', 'pre_get_post_by_tag' );
См дополнительно
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости