我正在尝试使用PHP DOMDocument类来修改我的页面内容,但它并不是很顺利。
<?php
$d = new DOMDocument();
$c = get_the_content();
$d->loadXML($c);
echo $d->saveHTML();
?>
如果我回显$c
,则页面正常打印,但如上所述,它根本不打印任何内容。我在这里缺少什么?
答案 0 :(得分:0)
您应该使用loadHTML()
代替loadXML()
。使用选项,以防止不需要的标签。
<?php
$d = new DOMDocument();
$c = get_the_content();
$d->loadHTML($c, LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD);
echo $d->saveHTML();
?>
与the_content()
的一个重要区别是get_the_content()
未通过&#39; the_content&#39;传递内容。这意味着get_the_content()
不会自动嵌入视频或扩展短代码等。
它也不会 autop 。但您可以轻松应用过滤器:
$c = apply_filters('the_content', get_the_content());
关注loadHTML()
的选项仅适用于Libxml&gt; = 2.7.7(从PHP&gt; = 5.4.0开始)。