WordPress博客中SQL查询的正确格式化方法 解决代码预览乱码
异常原因
现在出现的转义乱码,是因为代码高亮功能要输出的样式标签,被WordPress的内容过滤机制当成普通文本转成了实体字符,常见触发点:
- 编辑器解析冲突:古腾堡编辑器会自动给普通段落块里的短代码加转义,导致短代码根本没被正常执行
- 短代码参数不匹配:你所用的
[sourcecode]短代码对应的插件,不认sql这个语言标识,没触发高亮逻辑 - 第三方插件拦截:安全类、内容优化类插件把代码块生成的样式标签当成非法HTML,强制做了转义
正确的SQL代码格式化操作
- 用经典编辑器的场景
- 一定要切到文本编辑模式再粘短代码,别在可视化模式下粘,否则编辑器会自动给内容加转义
- 先把语言参数从
sql换成mysql测试,很多旧版代码高亮插件不认sql,但能正常识别mysql,替换后写法是:[sourcecode language="mysql"] create external schema spectrum from data catalog database 'spectrumdb' iam_role 'arn:aws:iam::123456789012:role/mySpectrumRole' create external database if not exists; [/sourcecode]
- 用古腾堡编辑器的场景
- 别把短代码直接粘到普通段落块,要插专门的「短代码」块再贴内容,从根源绕开编辑器的自动转义规则
- 更建议直接用古腾堡自带的代码块、或者代码高亮插件提供的专用代码块组件,不用依赖旧的
[sourcecode]短代码,这类组件会自动处理SQL的语法高亮,不会出转义问题
- 换了参数还是转义的排查方法
- 先临时停掉所有安全类、内容压缩类插件再预览,如果显示正常,就逐个重启插件,找到哪个插件在拦内容,把代码块生成的
span.hljs-*类标签加到这个插件的白名单里就行 - 顺便检查下SQL内容里有没有夹带尖括号、特殊HTML字符,这类字符很容易触发过度过滤
- 先临时停掉所有安全类、内容压缩类插件再预览,如果显示正常,就逐个重启插件,找到哪个插件在拦内容,把代码块生成的
内容的提问来源于stack exchange,提问作者Jatin Mehrotra
相关产品推荐
相关产品推荐

