博文中心

WordPress SEO 所有页面完美伪静态 引力探索版

作者: 分类: 发布于:2015.12.15 阅读:3,366 次

SEOer都知道,伪静态的重要性。虽然百度自己说动态链接,也能完美收录。但,能做到静态更好。本文将介绍,怎样在WordPress中,进行’页面‘,‘文章’,‘分类‘,’自定义文档‘的伪静态操作方式。

什么是伪静态?

伪静态技术是指展示出来的是以.html一类的静态页面形式。伪静态只是改变了URL的表现形式,实际上还是动态页面。

WordPress 实现伪静态的原理

生成一个以.html结尾的地址(url)  ---> 利用rewrite规则转换 ---> 实际页面地址

所以,我们要解决的问题就是

  • 生成以.html结尾的网址
  • 整理rewrite规则

WordPress 整理rewrite规则

将下面代码添加主题functions.php

function ribs_rewrite_rules()
{
add_rewrite_rule('(.?.+?)(?:-page-([0-9]+))\.html?/?$', 'index.php?pagename=$matches[1]&page=$matches[2]', 'top');//page
add_rewrite_rule('(.?.+?)\.html(?:/([0-9]+))?/?$', 'index.php?pagename=$matches[1]&page=$matches[2]', 'top');//page
add_rewrite_rule('[^/]+(?:/attachment-(.+))\.html?/?$', 'index.php?attachment=$matches[1]', 'top');
add_rewrite_rule('([^/]+)(?:-page-([0-9]+))\.html?/?$', 'index.php?name=$matches[1]&page=$matches[2]', 'top');//post
add_rewrite_rule('([^/]+)\.html(?:/([0-9]+))?/?$', 'index.php?name=$matches[1]&page=$matches[2]', 'top');//post
}
add_action('registered_post_type', 'ribs_rewrite_rules');

WordPress 生成以.html结尾的网址

WordPress文章伪静态

默认WordPress文章能实现伪静态链接。

打开 【设置】>【固定链接】

设置固定链接形式,推荐

/%postname%

/%post_id%

将下面代码添加主题functions.php中即可。

function ribs_post_permalink($permalink, $post, $leavename){
if (strpos($permalink, '?p=' . $post->ID) === false) {
$permalink = $permalink . '.html';
}
return $permalink;
}
add_filter( 'post_link', 'ribs_post_permalink', 1, 3 );

WordPress页面伪静态

默认WordPress页面不能实现伪静态链接,比如:http://inli.work/hehe.html,手动在链接中添加“.html”,会自动转码为"-html",但万能的WordPress,你能想到的功能都会有相应的办法帮你实现。

将下面代码添加主题functions.php中即可。

// 页面链接添加html后缀
function ribs_page_permalink($link, $postID){
if (strpos($link, '?page_id='.$postID) === false) {
$link = $link . '.html';
}
return $link;
}
add_filter( '_get_page_link', 'ribs_page_permalink', 1, 2 );

添加后,需要到固定链接设置页面,重新保存一下固定链接设置,否则不会生效。
上述代码适合伪静态的固定链接形式使用(必须),比如:
/%postname%
/%post_id%

WordPress附件页面伪静态

前提条件:父页面以.html结尾。

将下面代码添加主题functions.php中即可。

// 页面链接添加html后缀
function ribs_attachment_permalink($link, $postID){
$link = preg_replace('/(.+?)\.html(?:\/(.+?))?\//','$1/attachment-$2.html',$link);
return $link;
}
add_filter( 'attachment_link', 'ribs_attachment_permalink', 1, 2 );

WordPress 分页伪静态

待完善

WordPress分类目录添加斜杠

首先我们需要知道为什么要给WordPress分类目录添加斜杠。

分类目录顾名思义就是一个目录,众所周知,目录链接应该像这样 :

http://www.inli.work/category/hehe/

但有些时候因为我们的伪静态规则设置问题在WordPress分类目录后并没有斜杠 / ,会出现:

http://www.inli.work/category/hehe

像这样的情况。

这对搜索引擎是不友好的,因为带有斜杠时搜索引擎能及时识别出这是一个目录,而没有斜杠时则要分析。(就现在这行业水平,误判是常有的事,有做留意SEO的童鞋都知道。)

所以,我们需要给WordPress分类目录添加斜杠。

我们只需要把以下代码加在主题目录的 functions.php 中即可:

function nice_trailingslashit($string, $type_of_url) {
if ( $type_of_url != 'single' && $type_of_url != 'page'&& $type_of_url != 'paged'&& $type_of_url != 'single_paged' )
$string = trailingslashit($string);
return $string;
}
add_filter('user_trailingslashit', 'nice_trailingslashit', 10, 2);

排除页面文件,否则页面链接.html后面也会自动加上斜杠。

WordPress自定义文章类型伪静态

安装插件 Custom Post Type Permalinks

 

2 抢沙发
我要评论