Crayon Syntax Highlighter是一款很好的wordpress高亮插件,但是已经很多年不再进行更新了,而且也不支持php7.2以后的版本,如果你当前使用了最新的php版本,那么再使用这个插件时会报网站错误,具体错误日志内容如下:
1 |
[error] 162653#0: *42 FastCGI sent in stderr: "PHP message: PHP Warning: preg_replace(): Compilation failed: invalid range in character class at offset 4 in /www/wp-content/plugins/crayon-syntax-highlighter/crayon_langs.class.php on line 340PHP message: |
临时解决办法:
进入wordpress插件目录,找到crayon_highlighter.class.php文件,修改第340行
wp-content/plugins/crayon-syntax-highlighter/crayon_highlighter.class.php
将原内容:
1 |
return preg_replace('/[^\w-+#]/msi', '', $id); |
修改成
1 |
return preg_replace('/[^-\w+#]/msi', '', $id); |
PS:网上有很多复制粘贴文章说添加反斜杠的,同样可以解决此问题。即340行内容改成
1 |
return preg_replace('/\[^\w-+#]/msi', '', $id); |
以上办法只是临时性,如果你使用了php8可能还会出现其他的问题,为了彻底支持php7~php8版本,我这里提供了两个修复好的插件包,该插件修复程序来自国外论坛用户分享,最后更新时间为2021年1月。
如果你当前使用的是Gutenberg(古腾堡)编辑器,那么请下载下面这个版本的高亮插件
https://down.whsir.com/downloads/crayon-syntax-highlighter_patched_10JAN21.zip
如果当前使用的是经典编辑器,那么请下载下面这个版本的高亮插件
https://down.whsir.com/downloads/crayon-syntax-highlighter_patched_10JAN21_classic.zip
原文链接:修复wp高亮插件Crayon Syntax Highlighter支持php8,转载请注明来源!