wordpress 单篇文章分页优化

wordpress 单篇文章分页优化

作者:明星 |  时间:2013-07-22 |  浏览:5541 |  评论已关闭 条评论

wordpress 文章的分页问题一直困扰着我,不知道如何去更好的优化wordpress的单篇文章的分页问题。一开始是不知道如何去分页,后来在网上找了很多的资料才把这个单篇文章分页给做好,可以参见《wordpress文章分页方法》。后来发现,分页的文章不是静态页面,就像把这个分页问题做好。今天终于做好了。

问题描述:

文章没有分页之前:

比如我今天早上转载的一篇文章,很长的。分页之后显示的方式是:

http://www.29mo.com/wlzz/477.html

http://www.29mo.com/wlzz/477.html/2

这样的显示方式对搜索引擎很不友好,而且习惯了看那种html在后面的网址的形式,这种网址也不好看。于是修改成了这种:

http://www.29mo.com/wlzz/477.html

http://www.29mo.com/wlzz/477_2.html

这样看着就很舒服了。那么wordpress 单篇文章分页怎么更好的优化呢?也可以看看这篇文章《美化wordpress 分页链接的方法》,这篇文章是优化分页代码显示的效果的,今天这篇文章是介绍分页显示的形式的。

首先,在后台主题目录找到functions.php文件,将一下代码复制到文件里面(我放在了最后,即?>之前)

function add_custom_post_rewrite_rules($rules) {
$custom_rules = array(
‘.+/([0-9]+)-([0-9]+)\.html$’ => ‘index.php?p=$matches[1]&page=$matches[2]‘,
);
$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]+)(\.html)(/)([0-9]+)|’, ‘custom_page_link’, $links);

echo $links;
}

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

然后,找到找到single.php文件,查找wp_link_pages并替换为my_wp_link_pages。

最后,将这段代码添加到相关Apache下的RewriteRule里面(我的网站在VPS上,所以直接修改的是Rewrite文件里面的httpd.ini文件,将这段代码放在了>之前)

<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>

如果你的网站有.htaccess文件的话,也可以直接修改。

最后在网站后台固定链接处更新下固定链接就可以了。当然我的网站的固定链接形式是:/%category%/%post_id%.html  这种形式,不同的形式在修改functions.php文件时代码也不相同,由于固定链接的形式太多,代码将在下一篇文章详细介绍。

相关推荐
更多

评论已关闭。