WARNING: This article may be obsolete
This post was published in 2021-09-16. Obviously, expired content is less useful to users if it has already pasted its expiration date.
This post was published in 2021-09-16. Obviously, expired content is less useful to users if it has already pasted its expiration date.
有的时候你会发现你的一篇Wordpress文章莫名其妙有一两个MathJax公式就是无法渲染,但是在古腾堡的可视化编辑器里,看起来一切都很正常。比如下面这个例子:
其实这个公式在wordpress数据库里存储成了下图这个样子,但是它不会被Gutenberg的默认编辑器显示出来,只有切换到 Edit as HTML 模式才能发现其中的猫腻:
如果你很喜欢在Wordpress gutenberg编辑器里到处复制粘贴MathJax公式,那么有很大概率粘上这段代码,导致MathJax莫名其妙就是不渲染。
这可能是一个组合了macOS + Chromium + Gutenbery才诞生的奇妙bug,我搜索了我的文章,只有最近的(大体上就是更新了Wordpress 5.8.1以后的)文章才存在这串字符,具体可以见这个issue:🔗 [A meta tag is inserted when copy pasting a link · Issue #33585 · WordPress/gutenberg] https://github.com/WordPress/gutenberg/issues/33585
事实上,不仅仅是MathJax,还有很多wordpress组件(比如各种shortcode)会被这串字符影响。可以定期使用Search Regex – WordPress plugin | WordPress.org在整个 wp_posts 表里查找并移除这串字符。
或者根据#33585 issue的讨论内容,如果你觉得mysql全局替换风险有点大,你也可以使用这个php snippet进行内容过滤:
<?php
add_filter( 'the_content', fn($content) => preg_replace('#</?meta(\s[^>]*)?>#i', '', $content) );
Last Modified in 2022-09-28