Php 更改wordpress中的搜索slug

Php 更改wordpress中的搜索slug,php,wordpress,Php,Wordpress,我尝试使用以下代码段在WordPress中编辑搜索段塞: function fb_change_search_url_rewrite() { if ( is_search() && ! empty( $_GET['s'] ) ) { wp_redirect( home_url( "/search/" ) . urlencode( get_query_var( 's' ) ) ); exit(); } } add_act

我尝试使用以下代码段在WordPress中编辑搜索段塞:

    function fb_change_search_url_rewrite() {
    if ( is_search() && ! empty( $_GET['s'] ) ) {
        wp_redirect( home_url( "/search/" ) . urlencode( get_query_var( 's' ) ) );
        exit();
    }   
}
add_action( 'template_redirect', 'fb_change_search_url_rewrite' );
而且效果很好。但是我需要将slug“/search/”更改为自定义,除了这个单词外,其他任何东西都无法工作。我每次和别人换鼻涕虫时都会得到404

你对我如何做到这一点有什么想法吗


谢谢

以下是我在function.php上写的内容:

function search_url_rewrite () {
if (is_search() && !empty($_GET['s'])) {
wp_redirect(home_url('/anything/').urlencode(get_query_var('s')));
exit();
}
}
添加操作(“模板重定向”、“搜索url”、“重写”)


试试这段代码。

我们已经用php和.htaccess格式编写了脚本。请随便穿一件试试

php脚本

function fb_set_search_base() {

    $GLOBALS['wp_rewrite'] -> search_base = 'my_search'; // set new string
}
add_action( 'init', 'fb_set_search_base' );
  RewriteCond %{QUERY_STRING} s=(.*)
  RewriteRule ^$ /search/%1? [R,L]
htaccess脚本

function fb_set_search_base() {

    $GLOBALS['wp_rewrite'] -> search_base = 'my_search'; // set new string
}
add_action( 'init', 'fb_set_search_base' );
  RewriteCond %{QUERY_STRING} s=(.*)
  RewriteRule ^$ /search/%1? [R,L]

有关更多信息

您需要为自定义搜索slug/permalink制定重写规则

修改你的代码变成这样

function fb_change_search_url_rewrite() {
    if ( is_search() && ! empty( $_GET['s'] ) ) {
        wp_redirect( home_url( "/find/" ) . urlencode( get_query_var( 's' ) ) );
        exit();
    }   
}
add_action( 'template_redirect', 'fb_change_search_url_rewrite' );

//additional rewrite rule + pagination tested
function rewrite_search_slug() {    
    add_rewrite_rule(
        'find(/([^/]+))?(/([^/]+))?(/([^/]+))?/?',
        'index.php?s=$matches[2]&paged=$matches[6]',
         'top'      
    );
}
add_action( 'init', 'rewrite_search_slug' );

在当地现场测试。根据需要更改“查找”一词,在主题函数中添加此代码后,不要忘记保存永久链接。

您好,谢谢,但它不起作用。我把它添加到我的第一个代码中,在第一次尝试之后,用我的slug替换“anything”,对吗?下面是我在function.php上写的:函数搜索url重写(){if(is_search()&!empty($_GET['s']){wp_重定向(home_url('/anything/')。urlencode(GET_query_var('s'));exit()}}添加操作($_redirect',template_redirect',search_url_rewrite');是的,我有相同的,但它只与slug“search”一起工作,我不知道为什么Hello,谢谢你,我尝试了你的php代码,但我的search slug中没有任何更改:-(太好了!它工作得很好。非常感谢你的帮助!