Почему не переходит на 2 страничку поиска wordpress?

Всем привет. Создал страничку search.php вывожу там результаты поиска, сделал пагинацию, когда выбиаю 2 страничу, то мой url становится таким /page/2/?s=tes и перебрасывает на главную страницу, а в консоле ошибка GET glenbrook.loc/page/2/?s=tes 404 (Not Found), кто сталкивался, почему на 1 страничке всё хорошо, а на 2 он куда-то кидает?
  • Вопрос задан
  • 248 просмотров
Решения вопроса 1
deniscopro
@deniscopro Куратор тега WordPress
WordPress-разработчик, denisco.pro
От того, что для изменения параметров запроса используется хук pre_get_posts. (можно вставить в functions.php темы)
function search_filter($query) {
  if ( !is_admin() && $query->is_main_query() ) {
    if ($query->is_search) {
      $query->set('posts_per_page', '1' );
    }
  }
}

add_action('pre_get_posts','search_filter');

А если вызывать query_posts перед циклом, то Вы просто делаете второй запрос поверх основного и его работа нарушается.

перебрасывает на главную страницу

Перебрасывает не на главную, а на 404, у Вас, видимо, просто нет шаблона 404.php в теме.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@seftomsk Автор вопроса
Так... С этим разобрался, в настройках изменил вывод с 10 до 1 записи, походу поэтму не создавались другие страницы, но вот, что странно, я думал, что когда я вручную пишу 'posts_per_page' => 1, и он на основе моего запроса строит мне 3 страницы, то при переходе на 2 я ожидал её увидеть всё-таки... Кто знает как решить и от чего так вообще происходит?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы