Проблема с разбивкой по страницам с помощью tag.php

Я использую этот код в tag.php :

  global $wp_query; $paged = (get_query_var('paged')) ? get_query_var('page') : 1; $termsss = $wp_query->queried_object; $my_argsss = array ( 'post_type' => array('pavilion','post','catalog','tenders','services'), 'tag' => $termsss->slug, 'posts_per_page' =>'20', 'paged' => $paged ); $wp_query = new WP_Query(); $wp_query -> query ($my_argsss); if ( $wp_query->have_posts() ) { while ( $wp_query->have_posts() ) { $wp_query->the_post(); // your code! } } 

На первой странице мы можем видеть все, что хотим, но на другой странице возвращается 404 не найден!
Есть идеи?

Solutions Collecting From Web of "Проблема с разбивкой по страницам с помощью tag.php"

Никогда не повторять основной запрос. pre_get_posts и измените его. В functions.php поместить следующее (размещение в шаблоне означает, что он работает слишком поздно):

 add_action( 'pre_get_posts', function ( $wp_query ) { if ( $wp_query->is_main_query() && $wp_query->is_tag() ) { $wp_query->set( 'posts_per_page', 20 ); $wp_query->set( 'post_type', [ 'pavilion', 'post', 'catalog', 'tenders', 'services', ]); } }); 

И теперь ваш код шаблона должен быть просто:

 if ( have_posts() ) { while ( have_posts() ) { the_post(); // your code! } }