問題描述
我注意到,默認 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 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。