实现WordPress站内搜索结果URL伪静态化

2021-05-22 0 1,804 百度已收录

众所周知,WordPress 默认搜索地址为 http://www.22vd.com/?s=keyword ,很显著这是一个动态地址,和全站伪静态有点格格不入,而且还晦气于WordPress静态缓存。因此我们很有需要把 WordPress 站内搜索效果设置成伪静态。我们都知道wordpress后台可以轻松设置牢靠链接,可以实现文章、分类、标签等页面的URL伪静态化,然则wordpress站内搜索效果页面的URL依然是“http://域名/?s=要害字”的动态URL形式,部门WordPress用户以为不相符SEO要求,希望把搜索效果页面的URL也实现“http://域名/search/要害词”的伪静态形式,实在实现方式也很简朴,下面我们分享两种方式。

方式一:

只需要通过在functions.php文件添加相关的函数代码即可:

  1.     //默认搜索效果伪静态
  2.     function wp_search_url_rewrite() {
  3.         if ( is_search() && ! empty( $_GET[\'s\'] ) ) {
  4.             wp_redirect( home_url( \"/search/\" ) . urlencode( get_query_var( \'s\' ) ) . \"/\");
  5.             exit();
  6.         }
  7.     }
  8.     add_action( \'template_redirect\', \'wp_search_url_rewrite\' );

现在去前台搜索,就会发现效果会跳转到【/search/要害词】了,固然若是着手能力强的话,我们为了让搜索直接进入这个页面,而不是要301跳转,我们可以稍微刷新一下这个搜索框,通例搜索框代码一样平常如下:

  1.     <div id="searchbar">
  2.         <form method="get" id="searchform" action="http://zhangge.net/">
  3.             <input type="text" name="s" id="s" placeholder="输入搜索内容" />
  4.             <button type="submit" id="searchsubmit">搜索</button>
  5.         </form>
  6.     </div>

输入内容,点击搜索后就一定会跳到 ?s=keyword 这个动态页面。以是,我们需要通过 js 代码来阻挡这搜索动作,然后重新界说跳转地址,将代码如下修改即可:

  1.     <div id="searchbar"> <form method="get" id="searchform" action="http://zhangge.net/search/">
  2.         <input name="s" id="s" placeholder="请输入搜索内容" onkeydown="if(event.keyCode==13){return Searcher('wp');}">
  3.         <button type="submit" id="searchsubmit" onclick="return Search('wp');">搜索</button>
  4.     </form>
  5.     </div>
  6.     <script type="text/javascript">
  7.     function Search(){
  8.         var value=$("# s ").val()||"";
  9.         window.open("http://zhangge.net/search/"+value+"/");
  10.         return false;
  11.     }
  12.     </script>

很简朴的代码,原理就是给搜索动作绑定了一个 js 函数,而这个 js 函数的功效就是获取当前输入的要害词,并拼接成一个新的地址,最后跳转已往即可。云云,就实现了 WordPress 默认站内搜索的伪静态化。很显著,这个方式适合任何 WordPress 主题。

方式二:

通过在.htaccess文件添加伪静态规则也可以实现,把下面的代码添加到网站根目录的.htaccess文件(对支持.htaccess的主机有用)

  1. RewriteCond %{QUERY_STRING} \\?s=([^&]+) [NC]
  2. RewriteRule ^$ /search/%1/? [NC,R,L]

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

1. 本站所有资源来源于用户上传和网络,因此不包含技术服务请大家谅解!如有侵权请邮件联系客服!3308869544
2. 本站不保证所提供下载的资源的准确性、安全性和完整性,资源仅供下载学习之用!如有链接无法下载、失效或广告,请联系客服处理,有奖励!
3. 您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容资源!如用于商业或者非法用途,与本站无关,一切后果请用户自负!
4. 如果您也有好的资源或教程,您可以投稿发布,成功分享后有猫币奖励和额外收入!

主题镇 WP教程 实现WordPress站内搜索结果URL伪静态化 https://zhutizhen.com/14446.html

永远为用户服务的镇长!

常见问题
  • 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。
查看详情
  • 最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或联络我们。
查看详情

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务