DDR爱好者之家 Design By 杰米

问题

当文章有分页的时候,WordPress生成的永久链接是page.html/2的形式,前面一段是文章的$link,后面的数字代表分页$number。那么问题来了,挖掘……不对,从逻辑上讲这到底是个html文件还是一个目录呢?

难看

在.html这个静态文件后面加上一个/和数字简直令人摸不着头脑,这还只是其次,重要的是,我发现搜索引擎根本不收录这样奇怪的链接,这个真是无法接受,我写的东西首尾都很重要,不能因为分个页就被忽视了。

不收录

拿这篇文章来看,搜索文章第一页的内容,谷歌收录了:

WordPress分页伪静态加html后缀

搜索文章第二页和第三页的内容,根本没有收录:

WordPress分页伪静态加html后缀

解决方案

于是我决定DIY WordPress的链接生成与解析规则。

思路

利用filter wp_link_pages_link 将分页链接/123456重写为page-[123456].html。

利用WordPress或者服务器的RewriteRule将page-[123456].html还原为/123456

添加钩子redirect_canonical,防止WordPress从page-[123456].html到/123456的强行跳转。

生成分页html后缀链接

给WordPress主题加入:

class Rewrite_Inner_Page_Links
{
  var $separator;
  var $post_rule;
 
  function __construct()
  {
    $this->separator = '/page-';
    // (.+".*\.html/\d*"%', $link))
      {
        $link = preg_replace("%(\.html)/(\d*)%", $this->separator . "$2$1", $link);
      }
    }
    return $link;
  }
 
  /**
   * 为新的链接格式增加重定向规则,移除原始分页链接的重定向规则,防止重复收录
   *
   * 访问原始链接将返回404
   * @param array $rules
   * @return array
   */
  function pagelink_rewrite_rules($rules)
  {
    $new_rule[$this->post_rule] = 'index.php"http://www.domain.com/program/tokyodaigaku.html/2/">http://www.domain.com/program/tokyodaigaku.html/2/ 的分页链接转化为形如 http://www.domain.com/program/tokyodaigaku/page-2.html 的链接。

注意,我的伪静态规则是/%category%/%postname%.html,如果你的规则不同,请自行修改代码或者伪静态规则。

重写URL规则

如果不重写规则的话,WordPress是不认识这个链接的,它以为有个目录叫tokyodaigaku,里面有篇文章叫page-2.html,结果会给出一个无情的404错误:

WordPress分页伪静态加html后缀

利用服务器的重写规则

如果是SAE的话,在config.yaml的第一行加入:

复制代码 代码如下:- rewrite: if ( !is_dir() && path ~ "(.+") goto "index.php"

如果不是的话,可以利用WordPress自带的rewrite_rules:

登陆后台——设置——固定链接:

WordPress分页伪静态加html后缀

什么也不用填,直接保存更改即可。代码会自动在数据库中硬性加入一条规则:

复制代码 代码如下:"(.+" => "index.php"

最终效果

无论是用http://www.domain.com/program/tokyodaigaku.html/2/ 还是 http://www.domain.com/program/tokyodaigaku/page-2.html,都可以访问第二页。

具体效果放在第二页,顺便测试一下分页后缀效果

WordPress分页伪静态加html后缀

好了,基本功能已经实现了,小伙伴们是否明白了呢,如有问题,请留言

DDR爱好者之家 Design By 杰米
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
DDR爱好者之家 Design By 杰米

P70系列延期,华为新旗舰将在下月发布

3月20日消息,近期博主@数码闲聊站 透露,原定三月份发布的华为新旗舰P70系列延期发布,预计4月份上市。

而博主@定焦数码 爆料,华为的P70系列在定位上已经超过了Mate60,成为了重要的旗舰系列之一。它肩负着重返影像领域顶尖的使命。那么这次P70会带来哪些令人惊艳的创新呢?

根据目前爆料的消息来看,华为P70系列将推出三个版本,其中P70和P70 Pro采用了三角形的摄像头模组设计,而P70 Art则采用了与上一代P60 Art相似的不规则形状设计。这样的外观是否好看见仁见智,但辨识度绝对拉满。