Вы должны использовать 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();
после добавления этих кодов
может я просто изменить базу поиска ? пытался изменить var $ search_base = 'search'; для пользовательского поиска в классе-wp-rewrite, но ничего не происходит. Поиск в любом случае работает с/search/base ... – user3514052
@ user3514052 Вы должны обновить структуру permalink, каждый раз, когда вы ее обновляете, создайте страницу с 'search' slug и обновите структуру permalink, она должна это сделать – Amin