文章正文里的短代码正常,同样的短代码放进摘要或文本小工具就变成方括号原文,页面里一点样式都没有。第一次遇到会往复杂处想,其实漏掉的多是个小前提。

echo do_shortcode(get_the_excerpt());
add_filter('widget_text', 'do_shortcode');
# 已解析过的内容别重复调用

正文会经过内容过滤器自动处理短代码,摘要和小工具走的是另外的过滤器,不显式调用解析函数就只能原样输出。这一点先确认清楚,后面就不用反复试。

「短代码不解析」这类改动最怕改一半,回滚脚本先准备好,再动生产。新版本先放一台机器上跑一天再全量,问题一般在这段时间暴露。

备份不是备了就行,恢复一次才算数,很多备份文件打开才发现是空的。接口问题先分清是没发出去、发出去了没收到,还是收到了处理失败。

具体做法是,在输出摘要的地方对内容套一层短代码解析函数;文本小工具的输出也用短代码解析函数包一层;确认没有二次转义把方括号变成了 HTML 实体。

改完照着核一遍,摘要和小工具里的短代码都能渲染成最终的页面内容。

作者 9823189