add_filter('tiny_mce_before_init', function ($init) {
    $init['paste_as_text'] = true;
    return $init;
});

从 Word 粘三段话进编辑器,后台看着还行,前台字体变成宋体,行距忽大忽小,源码里全是 style='mso-line-height-rule:exactly'。先别急着动参数,把报错原文和时间点记下来,顺序反了容易白折腾。

原因不复杂,Word 复制时带的是整套 HTML,包含 mso 命名空间的样式和 class='MsoNormal' 的段落。编辑器默认保留这些行内样式,主题的排版规则被它们盖住。

围绕「粘贴 Word 样式」排查时,命令行跑一遍比在面板里点十次有用,面板会替你做掉不少隐式操作。动手前把原文件复制一份带时间戳,出问题立刻换回去,比现场分析快得多。

一次只改一处,改完立刻验证,几个改动叠在一起,出问题就说不清是谁导致的。

处理上按这个顺序:粘贴时改用 Ctrl+Shift+V,或者在编辑器里选粘贴为纯文本;在 functions.php 里给经典编辑器打开 paste_as_text,从源头关掉;已经粘进去的内容用正则清掉 mso 样式,再统一套回主题样式。

改完只确认一件事:前台正文的字号和行距与其他文章一致,源码里搜不到 mso 字样。

作者 9823189