首先我们需要知道为什么要给分类目录和页面添加斜杠。
分类目录顾名思义就是一个目录,众所周知,目录链接应该像这样 :
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); }