wordpress 文章分页形式

wordpress 文章分页形式

作者:明星 |  时间:2013-07-23 |  浏览:9747 |  10 条评论

上一篇介绍了wordpress 文章分页的一些问题,那么这一篇文章主要介绍wordpress 文章分页的形式。

由于wordpress 固定链接的样式比较多,那么这里就介绍介绍不同的固定链接形式下具体的分页代码。

1. 固定链接格式为:/%year%/%monthnum%%day%/%postname%.html  代码为:

// 添加分页处理规则
function add_custom_post_rewrite_rules($rules) {
$custom_rules = array(
‘([0-9]{4})/([0-9]{1,2})([0-9]{1,2})/([^/]+)-([0-9]+)\.html$’ => ’index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]&name=$matches[4]&page=$matches[5]‘,
);
$rules = array_merge($custom_rules, $rules);

return $rules;
}
add_filter(‘post_rewrite_rules’, ’add_custom_post_rewrite_rules’);

// 修改分页链接
function my_wp_link_pages($args = ”) {
$args .= ($args ? ’&’ : ”) . ’echo=0′;
$links = wp_link_pages($args);
$links = preg_replace_callback(‘|([0-9]{4}/[0-9]{1,2}[0-9]{1,2}/)([^/]+)(\.html)(/)([0-9]+)|’, ’custom_page_link’, $links);

echo $links;
}

function custom_page_link($matches) {
return $matches[1].$matches[2].’-’.$matches[5].$matches[3];
}

那么相关Apache下的RewriteRule

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^([0-9]{4})/([0-9]{1,2})([0-9]{1,2})/([^/]+)\.html/trackback/?$ index.php?year=$1&monthnum=$2&day=$3&name=$4&tb=1 [L]
RewriteRule ^([0-9]{4})/([0-9]{1,2})([0-9]{1,2})/([^/]+)\.html/feed/(feed|rdf|rss|rss2|atom)/?$ index.php?year=$1&monthnum=$2&day=$3&name=$4&feed=$5 [L]
RewriteRule ^([0-9]{4})/([0-9]{1,2})([0-9]{1,2})/([^/]+)\.html/(feed|rdf|rss|rss2|atom)/?$ index.php?year=$1&monthnum=$2&day=$3&name=$4&feed=$5 [L]
RewriteRule ^([0-9]{4})/([0-9]{1,2})([0-9]{1,2})/([^/]+)\.html/page/?([0-9]{1,})/?$ index.php?year=$1&monthnum=$2&day=$3&name=$4&paged=$5
RewriteRule ^([0-9]{4})/([0-9]{1,2})([0-9]{1,2})/([^/]+)\.html/([0-9]+)/?$ index.php?year=$1&monthnum=$2&day=$3&name=$4&page=$5
</IfModule>

2.固定链接格式为:/html/%year%/%monthnum%/%day%/%postname%.html

// 添加分页处理规则
function add_custom_post_rewrite_rules($rules) {
$custom_rules = array(
‘html/([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/([^/]+)-([0-9]+)\.html$’ => ’index.php?year=$matches[1]&monthnum=$matches[2]&day=$matches[3]&name=$matches[4]&page=$matches[5]‘,
);
$rules = array_merge($custom_rules, $rules);

return $rules;
}
add_filter(‘post_rewrite_rules’, ’add_custom_post_rewrite_rules’);

// 修改分页链接
function my_wp_link_pages($args = ”) {
$args .= ($args ? ’&’ : ”) . ’echo=0′;
$links = wp_link_pages($args);
$links = preg_replace_callback(‘|(html/[0-9]{4}/[0-9]{1,2}/[0-9]{1,2}/)([^/]+)(\.html)(/)([0-9]+)|’, ’custom_page_link’, $links);

echo $links;
}

function custom_page_link($matches) {
return $matches[1].$matches[2].’-’.$matches[5].$matches[3];
}

相关Apache下的RewriteRule

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^html/([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/([^/]+)\.html/trackback/?$ index.php?year=$1&monthnum=$2&day=$3&name=$4&tb=1 [L]
RewriteRule ^html/([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/([^/]+)\.html/feed/(feed|rdf|rss|rss2|atom)/?$ index.php?year=$1&monthnum=$2&day=$3&name=$4&feed=$5 [L]
RewriteRule ^html/([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/([^/]+)\.html/(feed|rdf|rss|rss2|atom)/?$ index.php?year=$1&monthnum=$2&day=$3&name=$4&feed=$5 [L]
RewriteRule ^html/([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/([^/]+)\.html/page/?([0-9]{1,})/?$ index.php?year=$1&monthnum=$2&day=$3&name=$4&paged=$5
RewriteRule ^html/([0-9]{4})/([0-9]{1,2})/([0-9]{1,2})/([^/]+)\.html/([0-9]+)/?$ index.php?year=$1&monthnum=$2&day=$3&name=$4&page=$5
</IfModule>
分页阅读: 1 2 3 4 5 6 下一页

相关推荐
更多

  1. 子木博客 2013-8-6 17:11 #1

    技术必须学习,收藏了

    • 这个也不算我的技术呢,我也是网上找的,自己整理了一下而已

  2. 花盗网赚博客 2013-8-11 21:55 #2

    支持一下

    • 谢谢支持!

    • 谢谢支持!欢迎来访!

  3. 水处理之家网 2013-8-24 12:54 #3

    我用此种方法修改了,发生序错误了

    • 你先看下是不是你用的那种固定连接样式,我试过这个方法,文章首页可以用,是不过内页不行,出现404错误。也可能是这个代码的问题。

  4. 妹子图分享 2013-10-22 18:58 #4

    求相关写法的nginx重写规则

    • 这个规则我也不会,我也是在网上找到的这个方法。不过对我的网站好像没有作用。

  5. Yuki 2014-1-15 18:43 #5

    不错,学习了