实现WordPress站内搜索结果URL伪静态化
众所周知,wordpress 默认搜索地址为 http://www.XXX.com/?s=keyword ,很明显这是一个动态地址,和全站伪静态有点格格不入,而且还不利于 WordPress 静态缓存。因此我们很有必要把 WordPress 站内搜索结果设置成伪静态。我们都知道 wordpress 后台可以轻松设置固定链接,可以实现文章、分类、标签等页面的 URL 伪静态化,但是 wordpress 站内搜索结果页面的 URL 依然是“http://域名/?s=关键字”的动态 URL 形式,部分 WordPress 用户觉得不符合 SEO 要求,希望把搜索结果页面的 URL 也实现“http://域名/search/关键词”的伪静态形式,其实实现方法也很简单,下面我们分享两种方法。
方法一:
只需要通过在 functions.php 文件添加相关的函数代码即可:
-
//默认搜索结果伪静态
-
function wp_search_url_rewrite() {
-
if ( is_search() && ! empty( $_GET[\'s\'] ) ) {
-
wp_redirect( home_url( \"/search/\" ) . urlencode( get_query_var( \'s\' ) ) . \"/\");
-
exit();
-
}
-
}
-
add_action( \'template_redirect\', \'wp_search_url_rewrite\' );
现在去前台搜索,就会发现结果会跳转到【/search/关键词】了,当然如果动手能力强的话,我们为了让搜索直接进入这个页面,而不是要 301 跳转,我们可以稍微改造一下这个搜索框,常规搜索框代码一般如下:
-
<div id="searchbar">
-
<form method="get" id="searchform" action="http://zhangge.net/">
-
<input type="text" name="s" id="s" placeholder="输入搜索内容" />
-
<button type="submit" id="searchsubmit">搜索</button>
-
</form>
-
</div>
输入内容,点击搜索后就必然会跳到 ?s=keyword 这个动态页面。所以,我们需要通过 js 代码来拦截这搜索动作,然后重新定义跳转地址,将代码如下修改即可:
-
<div id="searchbar"> <form method="get" id="searchform" action="http://zhangge.net/search/">
-
<input name="s" id="s" placeholder="请输入搜索内容" onkeydown="if(event.keyCode==13){return Searcher('wp');}">
-
<button type="submit" id="searchsubmit" onclick="return Search('wp');">搜索</button>
-
</form>
-
</div>
-
<script type="text/javascript">
-
function Search(){
-
var value=$("# s ").val()||"";
-
window.open("http://zhangge.net/search/"+value+"/");
-
return false;
-
}
-
</script>
很简单的代码,原理就是给搜索动作绑定了一个 js 函数,而这个 js 函数的功能就是获取当前输入的关键词,并拼接成一个新的地址,最后跳转过去即可。如此,就实现了 WordPress 默认站内搜索的伪静态化。很明显,这个方法适合任何 WordPress 主题。
方法二:
通过在.htaccess 文件添加伪静态规则也可以实现,把下面的代码添加到网站根目录的.htaccess 文件(对支持.htaccess 的主机有效)
-
RewriteCond %{QUERY_STRING} \\?s=([^&]+) [NC]
-
RewriteRule ^$ /search/%1/? [NC,R,L]
原创文章,作者:DavidWu,如若转载,请注明出处:https://www.davidwu.net/archives/99932

服务项目 | 服务内容 | 收费标准(元) |
---|---|---|
开发定制 | WordPress主题/插件开发定制 | (以最终需求为准) |
主题/插件汉化 | 汉化团队WordPress主题/插件,翻译率95% | (以标的主题/插件的句子数量为准) |
服务器环境配置 | 基于您现有服务器,搭建配置网站运行环境,结合我们多年来实战经验,可完美支持WordPress等PHP程序运行,并配置伪静态规则、优化目录权限等问题。服务器我们强烈推荐使用Linux系统。 | 100元/次 |
网站托管 | 若贵站目前尚无技术人员,无法完成服务器环境配置,可选择我们的网站托管服务,直接交付正常运行的WordPress站点,并且无需担心服务器的后续维护工作,一切都由我们来帮您完成。 | 标配套餐:1000元/年/站点 高配套餐:联系客服获取 |
网站加速优化 | 从服务器后端配置优化到WordPress数据库缓存、前端页面缓存、JS和CSS压缩合并,全方位优化网站加载速度,实现秒开。(此服务仅针对(云)服务器/VPS) | 500元/次(仅站内优化200元/次) |
主题配置 | 本站所有主题均支持,可快速实现,若有任何问题可以咨询客服解决,若您希望我们提供配置服务,可选购此服务。 | 英文主题安装 60元/次 汉化主题安装 30元/次 |
HTTPS配置 | HTTPS已经不断普及,并且有着更高的安全性以及SEO上的优待。该服务收取的为服务费,SSL证书产生的费用请自行承担。 | 100元/次 |
网站搬家 | 迁移网站所有文件和数据库信息、网站相关配置的调整、以及迁移中的疑难问题故障排除。 | 标准收费:500元/次 若网站数据量大,需协商 |
网站运维 | 提供整站的运维服务,保证网站正常运行。包含:网站故障定位及排除、网站数据备份和恢复、网站攻击及木马等问题的处理等 | 标准收费:2000元/年 IP 5000以上需协商 |