很多使用 Discuz X3.2 的同学都发现这么一个问题:在后台SEO设置-title设定的时候,即使你在连字符两侧输入了空格,在前台也显示不出来,很多同学纠结这个问题,今天终于找到了解决方法,在此分享给大家。
其实在在 DZ2.0 中就出现过类似的 BUG,但官方好像一直也没有理会,现在升级到3.2版本后,这个问题还是没有得到解决,下面就分享下儿童安全座椅网(http://www.bbseat.com.cn)就此问题的解决方案:
在文件:sourceclasshelperhelper_seo.php,49行附近,找到如下代码(修改之前请备份好原文件):
public static function strreplace_strip_split($searchs, $replaces, $str) { $searchspace = array('((s*-s*)+)', '((s*\,s*)+)', '((s*|s*)+)', '((s* 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)* (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)), ' ,-|_'); }
上传到服务器后,刷新前台,即可看到效果。