如何在wordpress中更改搜索永久链接?

时间:2016-11-24 12:42:59

标签: wordpress

我有自定义搜索页面,其中包含永久链接http://mywebsite.com/custom-search/

如何将搜索关键字作为参数传递,如下所示:http://mywebsite.com/custom-search/keyword

我收到错误404页面。或者可能有办法更改标准永久链接/搜索/到/ custom-search /?

2 个答案:

答案 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' );

功能仅在设置中重新保存后才起作用>固定链接