WordPress – 插件OSS Upload与WP Editor.md/WP Githuber MD插件冲突,导致katex公式不正确显示的问题
1 问题的出现
之前阿里云做活动,用9块钱撸了一个两年的40G-OSS,所以最开始搭建博客的时候就是使用了OSS Upload作为我的媒体库,同时在本地媒体库也存有备份。然后最新想好好写写有关计算几何算法的东西,不可避免的需要编辑大量的公式,而自己一直在使用markdown语法编辑文章,当然笔记软件习惯使用了OneNote了,但是正当我写三维空间中的旋转变换与旋转矩阵这篇博文时,我发现在WP Editor.md/WP Githuber MD编辑的好好的katex格式的公式点了发布与更新之后发现公式里面所有的反斜杠\都没有,要知道latex中很多特殊的字符都是通过反斜杠\来进行辨识的,而反斜杠的去除导致了在网页上面katex公式显示不出来,类似于下面:
r(\varphi) = \left[\left|\cos(m\varphi)\over a\right|^{n2} + \left| \sin(m\varphi) \over b\right|^{n3} \right]^{- 1 \over n1}
全部变成了:
r(varphi) = left[left|cos(mvarphi)over aright|^{n2} + left| sin(mvarphi) over bright|^{n3} right]^{- 1 over n1}
2 问题的排查与解决
2.1 主题排除
第一时间觉得是目前使用过的主题的问题,然后第一时间更换了别的主题,发现问题并没有解决。
2.1 插件排除
既然不是主题的问题,那么就是插件的问题了。注意将插件逐一关闭,发现将OSSUpload插件关闭之后,问题消失了。
2.3 代码审查
用ftp工具将OSSUpload整个插件的代码down到本地之后,发现了OSS Upload.php中有一个函数:
stripslashes
这个函数就是去除字符串中所有的反斜杠,md。找了很久终于找到了,发现了这个函数写在了函数oss_upload_post_save之中,其中在该插件初始化的时候已经注册了一个钩子函数:
add_filter('content_save_pre', 'oss_upload_post_save');
在文章内容保存之前即可触发这个钩子函数。
2.4 解决
将stripslashes这一行代码注释,重启OSSUpload插件,发现了latex公式正常显示了,bingo!欺负我不会PHP!!!
本文作者:StubbornHuang
版权声明:本文为站长原创文章,如果转载请注明原文链接!
原文标题:WordPress – 插件OSS Upload与WP Editor.md/WP Githuber MD插件冲突,导致katex公式不正确显示的问题
原文链接:https://www.stubbornhuang.com/758/
发布于:2020年03月09日 15:41:20
修改于:2023年06月26日 22:32:40
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
评论
52