0

我正在尝试使用 PHP DOMDocument 类来修改我的页面内容的内容,但效果并不好。

<?php
$d = new DOMDocument();
$c = get_the_content();
$d->loadXML($c);
echo $d->saveHTML();
?>

如果我 echo $c,该页面将正常打印,但如上所述,它根本不打印任何内容。我在这里想念什么?

4

1 回答 1

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()不通过'the_content'传递内容。这意味着它get_the_content()不会自动嵌入视频或扩展短代码等。

它也不会autop。但是您可以轻松应用过滤器:

$c = apply_filters('the_content', get_the_content());

Care 选项loadHTML()仅适用于 Libxml >= 2.7.7(从 PHP >= 5.4.0 开始)。

于 2015-05-11T16:18:19.063 回答