首先我们需要知道为什么要给分类目录和页面添加斜杠。
分类目录顾名思义就是一个目录,众所周知,目录链接应该像这样 :
https://im.acirno.com/category/wordpress/
https://im.acirno.com/tag/wordpress/
但有些时候因为我们的伪静态规则设置问题在WordPress分类目录以及标签目录 后并没有斜杠 / ,会出现:
https://im.acirno.com/category/wordpress
https://im.acirno.com/tag/wordpress
像这样的情况。
这对搜索引擎是不友好的,因为带有斜杠时搜索引擎能及时识别出这是一个目录,而没有斜杠时则要分析。
(就现在这行业水平,误判是常有的事,有做留意SEO的童鞋都知道。)
而且CDN如百度云加速对目录的缓存是认链接的结构,同时要求是目录的结构最后是以“/”为末尾的,所以要对WordPress分类目录地址进行优化。
所以,我们需要给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);
代码二
如果你需要对页面地址做伪静态就只加分类目录斜杠
- // 只分类目录地址后添加斜杠
- 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);
注意第三行中的 && $type_of_url != 'page'
是不能少的,因为没有这句判断,你的page页面地址也会出现斜杠,如果你之前已经设置了page页面伪静态(页面后缀.html 我没有设置),那将会出现“ http:/im.acirno.com/links.html/
”这种情况。
代码三
上面的代码如果你使用外链转内链插件Simple URLs时生成的短链接也会在后面加上一个 / 。这时候就需要下面的代码。
(兼容内链转外链Simple URLs插件)
- // 分类目录地址后添加斜杠
- if (is_admin()) return;
- $permalink_structure = get_option('permalink_structure');
- if (!$permalink_structure || '/' === substr($permalink_structure, -1))
- return;
- add_filter('user_trailingslashit', 'ppm_fixe_trailingslash', 10, 2);
- function ppm_fixe_trailingslash($url, $type)
- {
- if ('single' === $type || 'page' === $type)
- return $url;
- return trailingslashit($url);
- }