我有自定义搜索页面,其中包含永久链接http://mywebsite.com/custom-search/
如何将搜索关键字作为参数传递,如下所示:http://mywebsite.com/custom-search/keyword
我收到错误404页面。或者可能有办法更改标准永久链接/搜索/到/ custom-search /?
答案 0 :(得分: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")
检索传递的关键字的值
希望它有所帮助
注意:您必须更新永久链接结构或在添加这些代码后使用flush_rewrite_rules();
答案 1 :(得分:0)
刚刚用功能
更改了搜索库function vital_custom_search_base() {
$GLOBALS['wp_rewrite']->search_base = 'custom-search';
}
add_action( 'init', 'vital_custom_search_base' );
功能仅在设置中重新保存后才起作用>固定链接