如何在博客搜索中更改WP重定向?

时间:2015-05-12 14:43:59

标签: php wordpress redirect

我正在运行WP博客。 在永久链接中,我将WP基本URL设置为https://www.url.com/blog。 这是必要的,不能改变。

如果我尝试将WP-Search Widget用于Blog,则会失败。 因为URL WP尝试重定向是错误的

  

(..的 /博客 /博客/?S =检验)。

有没有办法说WP使用

  

../ blog /?s = test

而不是

  

../博客/博客/?S = ...

我尝试了什么: 把这个代码放入functions.php(没有成功):

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

.htaccess无法更改

我们非常感谢您的想法。

更新以确定问题:

在使用Chrome调查搜索时,会显示WP重定向请求。

如果我只能阻止WP vom重定向!

Chrome控制台输出:

远程地址:10.236.1.21:443
请求网址:https://www.domain.com/blog/?s=schnuffi
请求方法:GET
状态代码:302找到
响应标头
内容长度:0
内容类型:文本/ HTML;字符集= UTF-8
日期:2015年5月13日星期三08:52:46 GMT
位置:https://www.domain.com/blog/blog/?s=schnuffi
服务器:nginx的
状态:302发现
版本:HTTP / 1.1
....

3 个答案:

答案 0 :(得分:1)

删除以下功能后(我了解到您已在代码中实现):

function change_blog_url() {
if ( is_search() && ! empty( $_GET's' ) )
    { wp_redirect( home_url( "/blog/?s=" ) . urlencode( get_query_var( 's' ) ) ); exit(); }
}

Wordpress应该停止添加额外的“/ blog”并正确解析URL。

答案 1 :(得分:0)

尝试将is_search()函数添加到您的条件中。此功能检查是否显示搜索结果页面存档。 - >更多Wordpress codex页面

然后尝试将exit()函数添加到函数的末尾。

所以你的功能可能如下:

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

答案 2 :(得分:0)

在主题目录中创建文件 searchform.php 并放入 这段代码在其中:

<form role="search" method="get" id="searchform" class="searchform" action="<?php echo esc_url( home_url( '/' ) ); ?>">
    <div>
        <label class="screen-reader-text" for="s"><?php _x( 'Search for:', 'label' ); ?></label>
        <input type="text" value="<?php echo get_search_query(); ?>" name="s" id="s" />
        <input type="submit" id="searchsubmit" value="<?php echo esc_attr_x( 'Search', 'submit button' ); ?>" />
    </div>
</form>

根据需要更改表单操作属性,默认情况下,它将始终打印主页URL,这将是您的站点URL。例如:http://example.com/因此,当您的表单提交后,它会向http://example.com?s=query提出请求。