2016-11-24 2 views
2

У меня есть пользовательские страницы поиска, которые имеют постоянную ссылку http://mywebsite.com/custom-search/Как сменить поисковый запрос в wordpress?

Что я должен сделать, чтобы пройти ключевое слово для поиска в качестве параметра, например: http://mywebsite.com/custom-search/keyword

Я получаю ошибку 404 страниц. Или может быть способ изменить стандартную постоянную ссылку/поиск/в/пользовательский поиск /?

ответ

0

только измененная поиск базы с функцией

function vital_custom_search_base() { 
    $GLOBALS['wp_rewrite']->search_base = 'custom-search'; 
} 

add_action('init', 'vital_custom_search_base'); 

функция работает только после того, как пересохраните в настройках> Permalinks

1

Вы должны использовать rewrite endpoints пример кода:

/*! 
* URL rewrite 
*/ 
function my_custom_rewrite_rules() { 
    $page_id = 123; 
    $page_path = get_page_uri($page_id); 

    add_rewrite_endpoint('keyword', EP_PAGES); 
    add_rewrite_rule('^'. $page_path .'/(.*)/?', 'index.php?page_id=' . $page_id . '&keyword=$matches[1]', 'top'); 
} 
add_action('init', 'my_custom_rewrite_rules'); 

, а затем добавить его в качестве query_var

function my_custom_query_vars($vars) {  
    if(isset($_GET['keyword']) && !empty($_GET['keyword'])) { 
     $vars[] = 'keyword'; 
    } 

    return $vars; 
} 

add_filter('query_vars', 'my_custom_query_vars', 10, 1); 

вы будете иметь возможность получить значение переданного ключевого слова с помощью get_query_var("keyword") надежды это помогает

Примечание: Вы должны обновить структуру Permalinks или использовать flush_rewrite_rules(); после добавления этих кодов

+0

может я просто изменить базу поиска ? пытался изменить var $ search_base = 'search'; для пользовательского поиска в классе-wp-rewrite, но ничего не происходит. Поиск в любом случае работает с/search/base ... – user3514052

+0

@ user3514052 Вы должны обновить структуру permalink, каждый раз, когда вы ее обновляете, создайте страницу с 'search' slug и обновите структуру permalink, она должна это сделать – Amin

Смежные вопросы