欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络杂谈

Discuz!X2.5的SEO标题设置不支持空格解决方法

程序员文章站 2021-12-28 21:42:39
...

今天用Discuz!X2.5搭了个论坛,在SEO设置里面修改网站标题的时候,发现设置的空格不起作用,程序自动把空格过滤掉了。大家都知道,网站的标题对一个网站是非常重要的,直接影响网站的流量呀。为了设置一个自认为比较完美的标题,特地搜索了一下,成功解决这个问题,需要把Discuz!X2.5的SEO标题设置不支持空格的解决方法记录一下,以备不时之需。

总的来说,我找到两种方法让seo标题支持空格。一种是使用html空格,即空格用 代替,这种方法在浏览器标题栏是可以看到空格的,但是在网站的源码里面会有 字符,所以个人觉得还是没有解决标题设置不支持空格的问题。

解决Discuz!X2.5的SEO标题设置不支持空格的另一种方法是修改Discuz!X2.5的系统文件,修改source\class\helper\helper_seo.php文件第49行附近的如下代码:

public static function strreplace_strip_split($searchs, $replaces, $str) {$searchspace = array('((\s*\-\s*)+)', '((\s*\,\s*)+)', '((\s*\|\s*)+)', '((\s*\t\s*)+)', '((\s*_\s*)+)');$replacespace = array('-', ',', '|', ' ', '_');return trim(preg_replace($searchspace, $replacespace, str_replace($searchs, $replaces, $str)), ' ,-|_');}

修改之前一定先备份,防止出错。修改后的代码为:

public static function strreplace_strip_split($searchs, $replaces, $str) {$searchspace = array('(((\s)*\-(\s)*)+)', '(((\s)*\,(\s)*)+)', '(((\s)*\|(\s)*)+)', '(((\s)*\t(\s)*)+)', '(((\s)*_(\s)*)+)');$replacespace = array('$3-$3', '$3,$3', '$3|$3', '$3 $3', '$3_$3');return trim(preg_replace($searchspace, $replacespace, str_replace($searchs, $replaces, $str)), ' ,-|_');}

修改完成之后,替换源文件,在SEO设置里面填写有空格的标题,然后在Discuz!X2.5后台更新缓存。好了,打开论坛首页,是不是看到空格出现了?打开网站源代码,也没有多余的代码,完美解决Discuz!X2.5的SEO标题设置不支持空格的问题。