WordPress 设置伪静态后文章分页链接
发布:smiling 来源: PHP粉丝网 添加日期:2018-12-05 10:02:49 浏览: 评论:0
我们通常将WordPress固定链接设为/%postname%.html或者/%post_id%.html,可以让页面看起来像静态页,但当文章有分页时,分页链接会变得奇怪,比如:
/morning-paper-news.html/3
/132.html/2
html既然是后缀就应该一直在最后,来自solagirl的《用.html作为url后缀时的分页链接问题》一文,为我们提供了解决办法。
不过原代码只提供了/%postname%.html的修改方法。
本文提供一下/%post_id%.html的修改方法。
修正WordPress 设置伪静态后文章分页链接
将下面代码添加到当前主题 functions.php中:
- // 适合/%post_id%.html分页链接修正
- class Rewrite_Inner_Page_Links_id{
- var $separator;
- function __construct(){
- $this->separator = '/page-';
- if( !is_admin() || defined( 'DOING_AJAX' ) ) :
- add_filter( 'wp_link_pages_link', array( $this, 'inner_page_link_format' ), 10, 2 );
- add_filter( 'get_comments_pagenum_link', array( $this, 'comment_page_link_format' ) );
- add_filter( 'redirect_canonical', array( $this, 'cancel_redirect_for_paged_posts' ), 10, 2 );
- endif;
- if( is_admin() ) :
- add_filter( 'rewrite_rules_array', array( $this, 'pagelink_rewrite_rules' ) );
- register_activation_hook( __FILE__, array( $this, 'flush_rewrite_rules' ) ) ;
- register_deactivation_hook( __FILE__, array( $this, 'flush_rewrite_rules' ) );
- endif;
- }
- function flush_rewrite_rules(){
- flush_rewrite_rules();
- }
- // 修改post分页链接的格式
- function inner_page_link_format( $link, $number ){
- if( $number > 1 ){
- if( preg_match( '%
- $link = preg_replace( "%(\.html)/(\d*)%", $this->separator."$2$1", $link );
- }
- }
- return $link;
- }
- // 为新的链接格式增加重定向规则,移除原始分页链接的重定向规则,防止重复收录
- function pagelink_rewrite_rules( $rules ){
- foreach ($rules as $rule => $rewrite) {
- if ( $rule == '([0-9]+).html(/[0-9]+)?/?$' ) {
- unset($rules[$rule]);
- }
- }
- $new_rule['([0-9]+)('.$this->separator.'([0-9]+))?.html/?$'] = 'index.php?p=$matches[1]&page=$matches[3]';
- return $new_rule + $rules;
- }
- // 禁止WordPress将页面分页链接跳转到原来的格式
- function cancel_redirect_for_paged_posts( $redirect_url, $requested_url ){
- global $wp_query;
- if( is_single() && $wp_query->get( 'page' ) > 1 ){
- return false;
- //phpfensi.com
- }
- return true;
- }
- }
- new Rewrite_Inner_Page_Links_id();
添加代码后,需要保存一下固定链接设置。之后再次打开文章分页链接,会变成类似的:
/morning-paper-news/page-2.html
/132/page-2.html
注:上述代码并没有评论分页的链接修正,本人无此刚需未做研究。
其它固定链接形式,需要安装rewrite rules inspector插件查看链接正则写法并修改上述代码。
Tags: 伪静态 分页链接
- 上一篇:WordPress文章ID不连续
- 下一篇:浅谈优化WordPress运行速度的方法
相关文章
- ·nginx中wordpress伪静态规则写法(2014-03-22)
- ·wordpress如何实现自定义伪静态设置以及永久链接格式写法(2014-05-24)
- ·Wordpress在apache服务器伪静态的配置(2014-06-21)
- ·WORDPRESS如何设置伪静态(2014-06-21)
- ·WDCP下nginx的wordpress伪静态规则(2014-10-17)
- ·在windows虚拟主机下WordPress伪静态后中文标签分类404错误问题(2014-10-17)
- ·WordPress设置固定链接、伪静态(2014-10-18)
- ·WordPress解决伪静态问题和百度地图冲突问题(2014-10-18)
- ·wordpress伪静态中文tag标签无法出错(2015-02-04)
- ·Nginx下WordPress伪静态规则设置(2015-02-26)
- ·WordPress 伪静态规则配置(IIS/Apache/Nginx)(2015-10-16)
- ·解决wordpress伪静态文件导致默认首页不生效(2015-10-16)
- ·nginx下wordpress子目录伪静态设置步骤详解(2015-10-16)
- ·WordPress伪静态大全(2018-11-20)
- ·WordPress网站ULR伪静态设置方法(2018-11-25)
- ·wordpress程序在win和Linux系统下的伪静态设置(2018-12-03)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)