Отображение разбивки на дочерние категории 404

Может ли кто-нибудь понять, почему просмотр страниц в моих дочерних категориях приводит к 404, когда один и тот же $paged код отлично подходит для моего индексного файла? Это внутри моей категории-15.php (это влияет на все дочерние категории по категории родительской категории 15).

  <?php $PostNum = 1; $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; $args = array( 'cat' => $cat, 'posts_per_page' => 2, 'orderby' => 'date', 'order' => 'ASC', 'paged' => $paged, ); $CustomQueryIdentifier = new WP_Query($args); ?> <h1><a href="<?php the_permalink(); ?>"><?php the_category(' '); ?></a></h1> <?php if ( $CustomQueryIdentifier->have_posts() ) : while ( $CustomQueryIdentifier->have_posts() ) : $CustomQueryIdentifier->the_post(); ?> <div class="container"> <p class="number"><a href="<?php the_permalink(); ?>"><?php $postnumber = $CustomQueryIdentifier->current_post; echo $postnumber+1 ?></a></p> <?php the_content(''); ?> </div> <?php endwhile; endif; ?> <div class="navigation"> <?php next_posts_link('&laquo; Older Entries', $CustomQueryIdentifier->max_num_pages) ?> <?php previous_posts_link('Newer Entries &raquo;') ?> </div> <?php wp_reset_postdata(); ?> 

Solutions Collecting From Web of "Отображение разбивки на дочерние категории 404"

Здесь много вопросов относительно разбивки на страницы, это определенно один из наименее понятых аспектов того, как WordPress работает внутри.

Чтобы понять, почему вы получаете 404s, мы начнем с изучения ссылки Action в Codex, чтобы увидеть процесс WordPress для каждого запроса.

Процесс начинается с загрузки плагинов и темы и выполнения некоторой инициализации для настройки всего и т. Д. И т. Д. Часть, которую мы заинтересованы, начинается с parse_request , когда WordPress определяет, какую страницу запрашивается, и parse_query , когда переменные запроса установлены для генерации основного запроса .

Следующее действие – pre_get_posts , что дает нам возможность изменить основной запрос. Здесь вы хотите выполнить свой собственный код, чтобы изменить основной запрос, например, установив другое значение posts_per_page (подсказка, подсказка).

Затем мы достигаем действия wp после запуска основного запроса и, наконец, важного бита информации в этом объяснении – действия template_redirect . Это действие, в котором WordPress определяет, какой шаблон загрузить, основываясь на результатах основного запроса. Если это категория, загружается шаблон категории, если это архив, загружается шаблон архива, а если он 404 – загружается шаблон 404 .

Да, жирный текст означает, что последняя часть важна, и, надеюсь, мы начинаем понимать проблему. WordPress решил, что запрос составляет 404, прежде чем ваш шаблон будет загружен. Независимо от результатов, которые вы получаете при запуске запросов в шаблоне, не имеют значения. Если основной запрос не возвращает сообщение (ы), это 404.

В вашем случае вы получаете 404, потому что основной запрос загружает 5 сообщений на страницу, и у вас только 3, нет второй страницы в отношении основного запроса.

(Но подождите минутку, вы говорите, почему это работает на некоторых страницах, а не на других? Да, достаточно смешно, что это не всегда приведет к 404, например, когда запрос является уникальной страницей.)

Решение проблемы вашей категории было намечено ранее в истории – если вы хотите изменить запрос, используйте pre_get_posts до pre_get_posts основного запроса.

 // modify main query for category ID 15 and all its children function wpd_category_query( $query ) { if( $query->is_main_query() && $query->is_category() ) { $parent = 15; // your parent category $categories = get_term_children( $parent, 'category' ); $categories[] = $parent; if( is_category( $categories ) ) { $query->set( 'posts_per_page', 2 ); } } } add_action( 'pre_get_posts', 'wpd_category_query' );