WordPress别名slug增加点(.)符号支持

张子凡 WordPress优化 2024-03-08 21:09:01 阅读(...) 评论(0)

熟悉 WordPress 的朋友们都知道,WordPress 在 URL 链接中的处理算得上是一刀切,所有的特殊符号及字符都是使用减号/连字符(-)来进行分隔,这其实是一种对搜索引擎非常友好的分隔方式,也是谷歌搜索引擎所推荐的连字符,其中谷歌有一句提示“不妨考虑在网址中使用连字符来分隔字词。这样有助于用户和搜索引擎更轻松地识别网址中的概念。建议您在网址中使用连字符 (-) 而非下划线 (_)。”。

WordPress slug 别名

当然 WordPress 默认是支持下划线符号,虽然 Google 搜索引擎并不建议这样使用,但是下划线的使用场景也并非没有,例如当我们程序要在封装一个功能函数时,就需要使用下划线作为链接,因为 PHP 本身并不支持连接符或减号,所以子凡很多时候在分享关于 WordPress 函数时为了在 URL 中体现更精准的函数,所以使用下划线在 URL 链接中也是一种极其友好的使用规范。例如:https://zhangzifan.com/wp_debug.html ,这个链接中的 wp_debug 就是 WordPress 函数,相反如果使用搜索引擎推荐的 wp-debug 反而失去了那种准确的感觉。

那么继续回到今天子凡想要分享的主题,因为最近想要做一个网站导航,当然也不算是网站导航吧,就是想做一个收集分享优秀网站的网站而已,所以作为 WordPress 的忠实爱好者来说,当然会毫不犹豫的选择 WordPress 建站,所以我就在考虑如何优化 WordPress 文章别名,让 slug 别名直接兼容点(.)符号,这样也就避免了 WordPress 默认使用连接符替换 URL 中的点的尴尬现象,其实对于程序员开发来说也会出现版本号,所以很多网站在分享软件的时候就会难免遇到有版本的分享,这是如果 URL 中的版本号按照 WordPress 默认的连接符分隔也略显尴尬,故此有了今天的解决方案,代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
//WordPress slug 别名兼容点(.)符号
add_filter('sanitize_title', 'fanly_allow_dots_in_slug', 10, 2);
function fanly_allow_dots_in_slug($title, $raw_title){
	if( strpos($raw_title, '.') !== false ){
		$title = preg_replace('/[^a-zA-Z0-9_.-]+/', '-', $raw_title); //允许字母、数字和 _.-
		$title = preg_replace('/_{2,}/', '_', $title); //替换连续的 _
		$title = preg_replace('/.{2,}/', '.', $title); //替换连续的 .
		$title = preg_replace('/-{2,}/', '-', $title); //替换连续的 -
		$title = preg_replace('/[-._]{2,}/', '-', $title); //替换多个符号
		$title = trim($title, '_.-'); //移除开头结尾 _.-
		$title = strtolower($title); //转换为小写
	}
	return $title;
}

依然是 WordPress 优化的老解决方案,将以上代码复制粘贴到当前 WordPress 主题的 functions.php 文件的合适位置,即可让当前的 WordPress 网站别名支持点符号作为别名。

举例:优化前是 zhangzifan.com/go/leixue-com ,优化后是 zhangzifan.com/go/leixue.com

感觉上是不是好看多了?当然啦,这就是一个见仁见智的做法和看法,根据自己的喜好和需要去做就好,子凡就给大家简单分享到这里。

更多关于WordPress优化及疑问可以添加QQ群:255308000

除非注明,否则均为泪雪博客原创文章,禁止任何形式转载

本文链接:https://zhangzifan.com/wordpress-slug-allow-dots.html

留言评论

登录 后留言