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());
のオプションはloadHTML()
、Libxml >= 2.7.7 (PHP >= 5.4.0 以降) でのみ使用できることに注意してください。