Якщо не працює пагінація на сторінці пошуку

Зустрівся нещодавно з маленькою, незрозумілою і неприємною проблемою – в одному з шаблонів чомусь не працювала пагінація на сторінці пошуку. Пагінація організовувалась плагіном 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 ){
	$glue = strpos($result, '?') ? '&': '?';
	return $result . $glue ."s={$_REQUEST['s']}";
}

Цей код я додав на початок файлу теми search.php , після чого все запрацювало.

Залишити коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *