问题描述

我注意到,默认 WP 主题使用 force_balance_tags 列出帖子的摘录。这样,每当有人写一个帖子时,它不会导致重大的 html 破坏

<div><b>This is an excerpt. <!--more--> and this is more text... </b></div>

它将关闭标签,而不是粗体显示所有内容,并打破 div 。

为什么普通的 wordpress 页面默认情况下默认为默认主题?这样,破碎的页面内容就像:

</div></div> now text is not where it's supposed to be </div> unmatched tags

不会引起意想不到的行为。

这是一个监督,还是在页面上使用 force_balance_tags 时有什么东西打破了吗?

最佳解决方案

force_balance_tags()不是一个真正安全的功能。它不使用 HTML 解析器,而是一堆可能昂贵的正则表达式。只有当您控制片段的长度时,才应该使用它。否则你可能遇到内存问题或一些 obscure bugs

另一个问题是:该函数使用两个 hard-coded 单个标签和可嵌套标签的元素列表。有一些 multiple places 其中 WordPress 使用这样的列表,它们不保持同步。因此,当您使用不属于这些列表的元素或更改其嵌套行为时,可能会导致错误的标记。

参考文献

注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。