WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru

Если не работает пагинация на странице поиска

Встретился давеча с маленькой, непонятной и неприятной проблемой - в одном из шаблонов почему-то не работала пагинация на странице поиска. Пагинация организовывалась плагином wp-pagenavi. Самое интересное то, что виной такого странного поведения пагинации была именно Тема (шаблон), т.к. в default все работало.

Ошибка работы пагинации на странице поиска заключалась в том, что при переходе на страницу, например, 2 URL терял запрос типа ?s={поисковой запрос} и в итоге вместо page/2?s={поисковой запрос} было просто page/2. В результате, при переходе "отправляло" на главную страницу.

Попытки найти основную причину, успехом не увенчались: все было вроде как в порядке. Так как в корне проблему решить я не смог, я пошел обходным путем и сделал такой костыль:

// Хак, исправляющий нерабочую пагинацию на странице поиска в WordPress
add_filter( 'get_pagenum_link', 'kama_fix_search_pagination' );
function kama_fix_search_pagination( $result ){
	return "$result?s={$_REQUEST['s']}";
}

Этот код я добавил в начало файла темы search.php, после чего все заработало.

  • Https://rusvullkan.ru/

    Игровые автоматы вулкан русский вулкан https://rusvullkan.ru/

    rusvullkan.ru

8 комментов
  • Дима

    У меня все равно не работает sad. GET['s'] теряется

    Ответить21.Сен.2011 в 00:24 #
  • @ Zalmat sk59.ru

    У меня подобная проблема, только обычного вывода постов на главной.. Не могу понять как сделать

    Ответить21.Окт.2011 в 10:15 #
  • a11igator www.compiny.ru

    у меня тоже была аналогичная проблема, немного поменял запрос:

    return $result."&s={$_REQUEST['s']}" ;
    1
    Ответить24.Авг.2012 в 18:13 #
  • Ram

    Я использую также Blox CMS. Там кстати решена проблемы поисковой оптимизации при реверсивной пагинации в этой статье http://help.blox.ru/latest/?part_backward .

    Ответить26.Авг.2012 в 16:19 #
  • У меня та же проблема. Проанализировав код формы поиска, генерируемый стандартным виджетом, обратил внимание на метод формы: в виджете он "get", а у меня был "post". Поменял - заработало.

    1
    Ответить09.Ноя.2013 в 22:23 #
    • Михаил

      в виджете он "get", а у меня был "post". Поменял - заработало.

      Тоже помогло, спс бро!

      Ответить01.Апр.2018 в 15:03 #
  • Виктор

    Спасибо, выручил) Не мог понять почему - но после установки хака все заработало)

    Ответить20.Янв.2015 в 01:59 #
  • Эльдар

    Таже проблема только на странице archive.php . Помогите плиз

    Ответить11.Окт.2019 в 00:49 #
Здравствуйте, !     Войти . Зарегистрироваться