Версия WordPress: 3.3.2
Успение, Мой пост в категории 7 имеет 9 должностей в течение октября 2012 года.
путем доступа
www.example.com/2012/10/?cat=7
Я могу просмотреть все на одной странице. Тем не менее, я не создаю пользовательскую страницу category-7.php
в папке темы.
//listed category per page = 6 $query = 'posts_per_page=6&cat=7'; $year = get_query_var('year'); if($year > 0) { //build query string $query .= '&year='.$year; } $month = get_query_var('monthnum'); if($month > 0) { $query .= '&monthnum='.$month; } $paged = get_query_var('paged'); if($paged > 0) { $query .= '&paged='.$paged; } query_posts($query);
Теперь я снова получаю доступ
www.example.com/2012/10/?cat=7
В нижней части есть опция «Следующая страница», но когда я нажимаю ее на
www.example.com/2012/10/page/2/?cat=7
Я получил «404 – Страница не найдена!»
Единственное решение, которое я могу сделать, это перейти к WP-Admin, параметры чтения изменили значение «Страницы блога не более» на 6, после чего я получил правильный результат.
Однако, поскольку я исследую на странице wordpress, query_posts
параметр query_posts
, он должен работать правильно.
Пожалуйста, порекомендуйте. Благодаря!
Проблема в том, что вы query_posts()
основной запрос с помощью query_posts()
. Не делай этого.
Вместо этого фильтруйте основной запрос через pre_get_posts
:
function wpse82113_filter_pre_get_posts( $query ) { if ( is_category( 7 ) && $query->is_main_query() ) { $query->set( 'posts_per_page', '6' ); } } add_action( 'pre_get_posts', 'wpse82113_filter_pre_get_posts' );