0°

WordPress文章分页链接修正

2098 个字符,0 张图片,大约需要 3 分钟阅读

将以下扔进function.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( '%<a href=".*\.html/\d*"%', $link ) ){
                $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;
        }
        return true;
    }
}
new Rewrite_Inner_Page_Links_id();

 
为了方便,我们可以新建一个自定义插件,把这种代码都扔进去wordpress 创建自定义插件

除非注明,否则均为喵喵喵博客原创文章,转载请以链接形式标明本文地址

本文链接:https://www.miaomiaomiao.org/157.html

0 条回复 A 作者 M 管理员
    当上帝赐给你荒野时,就意味着,他要你成为高飞的鹰
欢迎您,新朋友,感谢参与互动!欢迎您 {{author}},您在本站有{{commentsCount}}条评论