WordPress 的默认搜索URL为“?s=”这种动态URL,我想把它改得好看一点的,改成“https://ihacksoft.com/search/关键字”这种类型的,怎么操作?其实一段简单的代码即可实现。

本来是这个样子的,在 WordPress 3.0 及以上都可以使用。

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

但是到了 WP 2.9.2 上就不能使用,为什么?因为 home_url 这个函数,WP 3.0 以下没有这个函数,所以报错了。解决方法很简单啊,直接替换成主域名不就行了,改成如下:

function redirect_search() {
if (is_search() && !empty($_GET['s'])) {
wp_redirect(("https://ihacksoft.com/search/").urlencode(get_query_var('s')));
exit();
}
}
add_action('template_redirect', 'redirect_search' );

这样一来,就支持了 2.9 了,搜索变成了 https://ihacksoft.com/search/关键字,我想再把它改一下,就是在后面再跟一个“/”,于是再次改了一下,后面加了”/“,最终如下:

function redirect_search() {
if (is_search() && !empty($_GET['s'])) {
wp_redirect(("https://ihacksoft.com/search/").urlencode(get_query_var('s'))."/");
exit();
}
}
add_action('template_redirect', 'redirect_search' );