列表里每条摘要开头都多出一个 <p>,后面还跟着 ,有的卡片里直接显示成半个尖括号加 p,看着像模板坏了。碰到这种情况,我一般先确认改动有没有真的生效。
原因不复杂,摘要截取用的是原始正文,截断函数没有先去掉 HTML 标签,截到一半正好落在标签中间。转义时又把尖括号编码成实体,就露出半截。
「摘要 HTML 标签」这类改动最怕改一半,回滚脚本先准备好,再动生产。别只看报错的最后一行,往上看几行,真正的起因通常在上面。
$text = wp_strip_all_tags(get_the_content()); $text = mb_substr($text, 0, 80, 'UTF-8'); echo esc_html($text) . '…';
同类问题如果隔一段时间又出现,多半是某个定时任务或重启流程把改动冲掉了。把这次用到的命令存进笔记,比记住结论有用,换个环境还能照着走。
具体做法是,先 strip_tags 去掉标签,再做截断,顺序不能反;输出时用 esc_html 转义,避免残留的实体被浏览器解析;长度按字符数截,中文别按字节算,截完补省略号。
最后用这个标准收尾,列表摘要只剩纯文字,没有尖括号和实体,每条长度基本一致。
