我正在运行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
....
答案 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提出请求。