WordPress页面链接添加.html后缀以及分类目录后添加斜杠

之前介绍过如何去除分类目录,即去掉分类链接中的 /category/ 目录标志,因为这个目录标志除了会让链接变的不简洁之外,还会降低它在搜索引擎中的权重,所以有些时候非常有必要将它去除。

那么为什么要添加.html后缀以及在分类目录后添加斜杠呢?

一、分类目录后添加斜杠

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

http://www.nafanlong.com/knowledge/

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

http://www.nafanlong.com/knowledge

像上面这样的情况。

这对搜索引擎是不友好的,因为带有斜杠时搜索引擎能及时识别出这是一个目录,而没有斜杠时则要分析。

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

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

// 添加斜杠
function nice_trailingslashit($string, $type_of_url) {
    if ( $type_of_url != 'single' && $type_of_url != 'page' )
      $string = trailingslashit($string);
    return $string;
}
add_filter('user_trailingslashit', 'nice_trailingslashit', 10, 2);

二、页面链接添加.html后缀

默认WordPress页面不能实现伪静态链接,比如:http://zmingcx.com/begin.html,手动在链接中添加“.html”,会自动转码为"-html"。一般简单的办法是在wordpress后台添加适合伪静态的固定连接规则,比如[/%postname%.html]、[/%post_id%.html],但是只在文章页有效。

// 页面链接添加.html后缀
add_action('init', 'html_page_permalink', -1);
function html_page_permalink() {
    global $wp_rewrite;
    if ( !strpos($wp_rewrite->get_page_permastruct(), '.html')){
        $wp_rewrite->page_structure = $wp_rewrite->page_structure . '.html';
    }
}

1、在functions.php里面添加上述代码,就可以实现在文章页面或者主页菜单页面加.html后缀实现伪静态。而且上面代码也适合伪静态的固定连接形式使用。

2、添加后,需要到wordpress后台在固定链接设置页面,重新保存一下固定链接设置(重新点击一下保存),否则不会生效。

注:如果有的朋友需要在页面链接后面也加上斜杠,那就把上面添加斜杠的代码的第二行代码的判断改一下就行(如果要页面要设置伪静态,就不能再使页面链接后加斜杠了,就是说不能用下面的代码,而是用上面的代码,不然会出现.html/的情况),如下:

function nice_trailingslashit($string, $type_of_url) {
    if ( $type_of_url != 'single' )
      $string = trailingslashit($string);
    return $string;
}
add_filter('user_trailingslashit', 'nice_trailingslashit', 10, 2);
标签:   |  
时间: 2016年04月28日上午11:51  |  
作者:
LEAVE A REPLY
loading
正在赶回来……