# Если постраничная навигация не работает на странице поиска
Недавно я столкнулся с небольшой, но неприятной проблемой — постраничная навигация не работала на странице поиска в одной из тем WordPress. Постраничная навигация была организована с помощью плагина wp-pagenavi. Интересно, что причиной такого странного поведения навигации оказалась сама тема, так как в стандартной теме всё работало без накладок.
## Проблема с постраничной навигацией
Проблема заключалась в том, что при переключении на страницу 2, например, URL терял параметр поискового запроса ?s={search query}
. Вместо page/2?s={search query}
он превращался просто в page/2
. В результате этого произошёл редирект на главную страницу.
Я пытался разобраться в коренной причине проблемы, но все проверки не выявили ничего необычного. Поскольку решить проблему в корне не удалось, я решил использовать временное решение и создал следующий "хакинг":
```php
// Хак для исправления неработающей постраничной навигации на странице поиска в WordPress
add_filter( 'get_pagenum_link', 'kama_fix_search_pagination' );
function kama_fix_search_pagination( $result ){
$glue = strpos($result, '?') ? '&' : '?';
return $result . $glue . 's=' . urlencode( $_REQUEST['s'] );
}
Как использовать этот код
- Скопируйте приведённый выше код.
- Откройте файл
search.php
вашей текущей темы WordPress. - Вставьте этот код в самое начало файла.
После добавления кода постраничная навигация на странице поиска должна заработать корректно. Если у вас возникли вопросы или дополнительные проблемы, не стесняйтесь задавать их на форумах или в сообществе WordPress.
Это решение не является идеальным, но оно может помочь в некоторых ситуациях. Всегда старайтесь искать и устранять коренные причины возникновения проблем.