У меня действительно странная проблема при попытке разбить страницы пользовательских типов постов на странице их архивов, я создал собственный тип поста с именем property
и установил страницу архива с именем properties
, чтобы показать их все.
Поэтому внутри моего archive-property.php
файла добавлена форма (метод GET
) с раскрывающимся списком, чтобы пользователи могли установить, сколько сообщений они хотят отображать на странице, это выглядит так:
<select name="prop_number" id="prop_number">
<option value="12">12</option>
<option value="25">25</option>
<option value="50">50</option>
</select>
Итак, прежде чем все, что я делаю:
if (isset($_GET)) {
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$query_args = array(
'post_type' => 'property',
'paged' => $paged,
'posts_per_page' => 12 // Default number of properties per page
);
// Custom number properties per page
if (isset($_GET['prop_number']) && !empty($_GET['prop_number'])) {
$query_args['posts_per_page'] = $_GET['prop_number'];
}
}
query_posts($query_args);
// Do loop and other stuff
Работает нормально, но когда я использую next_posts_link()
, чтобы попасть на вторую страницу, я получаю ошибку 404 страницы не найдена, однако, если я иду в свою админ-панель WP иустановите для параметра «Показывать страницы блога самое большее» то же число, которое требуется для каждой страницы в моем поле выбора (например, я вручную установил 25 в поле «Показывать страницы блога не более» и выбрал 25 в поле выбора prop_number
).работает нормально.
Я даже пытался использовать плагин WP-PageNavi , и он отображает правильное количество чисел в зависимости от того, сколько свойств я хочу показать, но у меня та же проблема. 404 страницына любой страницеЯ пытаюсь перейти, если я не вручную установлю страницу в бэкэнде.
Если мне не нужно было выбирать, сколько свойств я хочу показать, я бы просто установил номер вручную, но так как пользователи могут выбиратьмежду 3 вариантами я не могу установить фиксированное число в бэкэнде.
Может кто-нибудь сказать мне, что не так?Заранее спасибо!