我正在尝试使用 PHP DOMDocument 类来修改我的页面内容的内容,但效果并不好。
<?php
$d = new DOMDocument();
$c = get_the_content();
$d->loadXML($c);
echo $d->saveHTML();
?>
如果我 echo $c
,该页面将正常打印,但如上所述,它根本不打印任何内容。我在这里想念什么?
我正在尝试使用 PHP DOMDocument 类来修改我的页面内容的内容,但效果并不好。
<?php
$d = new DOMDocument();
$c = get_the_content();
$d->loadXML($c);
echo $d->saveHTML();
?>
如果我 echo $c
,该页面将正常打印,但如上所述,它根本不打印任何内容。我在这里想念什么?
您应该使用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()
不通过'the_content'传递内容。这意味着它get_the_content()
不会自动嵌入视频或扩展短代码等。
它也不会autop。但是您可以轻松应用过滤器:
$c = apply_filters('the_content', get_the_content());
Care 选项loadHTML()
仅适用于 Libxml >= 2.7.7(从 PHP >= 5.4.0 开始)。