我正尝试使用以下代码从<a>
中剥离所有图片和周围的get_the_content()
标记:
<?php
$content = get_the_content();
$postOutput = preg_replace(array('{<a[^>]*><img[^>]+.}','{></a>}'),'', $content);
echo $postOutput;
?>
这项工作正常,但段落周围没有<p>
个标签
1.使用get_the_content()
时这是正常的吗?
2.我怎样才能将它们添加到我的结果中?
3.或者我的正则表达式错了吗?
答案 0 :(得分:0)
好的,我会回答我自己的问题:
<p>
get_the_content()
上没有<p>
是正常的,谢谢@s_ha_dum $dom = new DOMDocument;
$dom->loadHTML(get_the_content());
$xpath = new DOMXPath($dom);
$nodes = $xpath->query('//img|//a[img]');
foreach($nodes as $node) {
$node->parentNode->removeChild($node);
}
$no_image_content = $dom->saveHTML();
$no_image_content = apply_filters('the_content', $no_image_content);
$no_image_content = str_replace(']]>', ']]>', $no_image_content);
echo $no_image_content;
我需要将内容过滤器应用为mentioned here(向下滚动到“其他用法”)。 查看导致以下代码here
的新问题{{1}}