@sergeystepanov1988

Как изменить url страницы результатов поиска?

Я использую подстраницы (subpages) и поиск по ним, вот так:
function search_filter($query) {
    if ($query->is_search) {
        $query->set('post_type', 'page');
        $query->set('post_parent',  1077);
    }
    return $query;
}
add_filter('pre_get_posts', 'search_filter');

Поиск работает только по нужным мне подстраницам. Но результаты поиска показываются на root url, то есть /. Как сделать так, чтобы результаты поиска отображались скажем на /docs/api/?
  • Вопрос задан
  • 509 просмотров
Решения вопроса 1
cesnokov
@cesnokov
<head>&nbsp;</head>
function custom_search_redirect() {
	global $wp_rewrite;
	if (!isset($wp_rewrite) || !is_object($wp_rewrite) || !$wp_rewrite->using_permalinks()) {
		return;
	}
	$search_base = $wp_rewrite->search_base;
	if (is_search() && !is_admin() && strpos($_SERVER['REQUEST_URI'], "/{$search_base}/") === false) {
		wp_redirect(home_url("/docs/api/" . urlencode(get_query_var('s'))));
		exit();
	}
}
add_action('template_redirect', 'custom_search_redirect');
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
kobyakovdima
@kobyakovdima
Любитель экспериментов
Создать специальную страницу и в поисковой форме указать, чтобы результаты запросы шли именно на неё. А там с полученным запросом можно делать всё что хотите. Естественно, этой странице сделать свой шаблон с соответствующим кодом и применить его к ней.
Ответ написан
Ваш ответ на вопрос

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

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