<div class='card' data-title='<?php echo esc_attr(get_the_title()); ?>'>
  <h2><?php echo esc_html(get_the_title()); ?></h2>
</div>

文章标题里带一个英文双引号,列表页卡片的 class 属性从中间断开,后面的布局全挤到一行,控制台报 Unexpected token。先别急着动参数,把报错原文和时间点记下来,顺序反了容易白折腾。

原因不复杂,模板把标题直接拼进 HTML 属性,没有经过 esc_attr,引号被当成属性结束符,剩下的字符变成新属性。前台内容一旦带引号或尖括号,结构就会破坏。

这次卡住的地方就在「esc_attr 属性转义」这一环,单独把它拎出来验证,别和其他改动混在同一次发布里。改完隔一天再看一次,当场正常不代表能稳住。

测试环境和线上的差别,往往就在版本号和那几行被忽略的配置上。线上出问题先对时间点,跟发布、备份、任务执行的时刻排一排,能省掉一半功夫。

处理上按这个顺序:所有输出到属性里的值都套 esc_attr,包括 title、data-* 和 aria-label;正文和标题文本用 esc_html,URL 用 esc_url,别混用;用带引号的标题新建一篇草稿,在前台确认属性完整。

改完只确认一件事:带引号的标题在列表页正常显示,卡片宽度和布局不再被打乱。

作者 9823189