更改 WordPress 搜索动态链接为伪静态固定链接

使用 wordpress 建站后,一项重要的工作就是网站的固定链接设置,尽量去除动态链接对搜索引擎更加友好,可以查看本站之前的相关文章:

WordPress 返回 HTTP 原始响应头中的 rel=shortlink 动态链接

我的 WordPress 固定链接设置优化的方法记录

wordpress搜索链接

在 wordpress 后台设置完固定链接即伪静态后,会发现使用 wordpress 搜索的时候链接地址是动态链接,与全站的伪静态固定链接有点格格不入,既不美观也不利于搜索引擎的收录,所以我们需要把 wordpress 搜索展现的动态链接也改为伪静态地址,即:

更改前:http://www.myself.com/?s=你的搜索词

更改后:http://www.myself.com/search/你的搜索词

是不是看起来舒服多了,还有利于网站的搜索引擎优化。好了下面就说说实现的方法吧

第一种方法:直接在 wordpress 主题的 functions 文件种添加代码:

很简单,将以下代码加入到主题下的 functions.php 当中即可:

  1. function tongleer_search_url_rewrite() {
  2. if ( is_search() && ! emptyempty( $_GET['s'] ) ) {
  3. wp_redirect( home_url( "/search/" ) . urlencode( get_query_var( 's' ) ) );
  4. exit();
  5. }
  6. }
  7. add_action( 'template_redirect', 'tongleer_search_url_rewrite' );

加入保存后去前台搜索,就会发现链接地址会跳转到【/search/关键词】了。当然,为了能让搜索直接进入这个页面,而不是 302跳转,我们可以稍微更改一下这个搜索框。

即第二种方法:

一般 wordpress主题常规搜索框代码如下:

  1. <div id="searchbar">
  2. <form method="get" id="searchform" action="//zhang.ge/">
  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="//zhang.ge/search/">
  2. <input id="wp_search" 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=$("#wp_search").val()||"";
  9. window.open("https://zhang.ge/search/"+value+"/");
  10. return false;
  11. }
  12. </script>

还是比较简单的代码,原理就是给【搜索】这个动作绑定了一个 js函数,而这个 js函数的功能就是获取当前输入的关键词,并拼接成一个新的地址,最后跳转过去即可。

如此,就实现了 WordPress默认搜索的伪静态化。很明显,这个方法适合任何 wordpress主题。

以上的方法你都不喜欢,没关系这还有一种办法来实现。

方法三:通过根目录 .htaccess 文件更改搜索 URL跳转

根目录 .htaccess 文件通常用于设置重定向和其他网站的配置任务。这里也可以使用它来更改 WordPress 中的默认搜索链接地址。

该 .htaccess 文件位于网站的根文件夹中,你需要使用 FTP 或文件管理器应用程序对其进行编辑修改。

在你的 .htaccess 文件中添加下面的2、3行代码:

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

添加修改完后保存并将 .htaccess 文件上传回网站根目录。

现在可以访问你的网站并使用搜索功能吗,你会看到到搜索结果的链接网址已经是固定的伪静态链接地址了。

 

转载请注明链接地址:荐爱小站 » 更改 WordPress 搜索动态链接为伪静态固定链接

赞 (0) 赏 !

觉得文章有用就打赏一下吧,赠人玫瑰手有余香!

支付宝扫一扫打赏

微信扫一扫打赏