0

我正在尝试使用这段代码 删除所有图像和周围的<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. 还是我的正则表达式错了?

4

1 回答 1

0

好的,我将回答我自己的问题:

  1. 是的,没有<p>关于get_the_content()谢谢@s_ha_dum 是正常的
  2. 要添加<p>我需要应用这里提到的内容过滤器(向下滚动到“替代用法”)。
  3. 正则表达式没有错,但是正则表达式 html 很脏。谢谢@MarcB

在此处查看导致以下代码的新问题

$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(']]>', ']]&gt;', $no_image_content);
echo $no_image_content;
于 2013-02-15T08:09:22.240 回答