将图像和blockquote放回到页面上/页面上

时间:2016-06-09 11:26:06

标签: php html wordpress

我有以下代码,它从我的wordpress帖子中取出元素。

<?php
            $content = get_the_content();
            $content = wpautop($content);

            $doc = new DOMDocument();
            $doc->loadHTML(get_the_content(), LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD);

            $xpath = new DOMXPath($doc);

            foreach ($xpath->query('//blockquote') as $node) {
                $node->parentNode->removeChild($node);
            }

            foreach ($xpath->query('//img') as $node) {
                $node->parentNode->removeChild($node);
            }

            foreach( $xpath->query('//p[not(node())]') as $node ) {
                $node->parentNode->removeChild($node);
            }

            $content = $doc->saveHTML($doc);

?>  

这除了文本之外的所有内容,我回应内容以获取更改的内容

echo $content
编辑:我想从帖子中自动删除图片和块引用,这样我就可以将它们放在页面的不同部分。而不是让它们显示在管理面板中。

1 个答案:

答案 0 :(得分:0)

正式表达救援。

首先,加载故事:

$content = get_the_content();

接下来,创建要定位的模式:

$bpattern '/(<blockquote)([^>]*)(>)([^<]*)(<\/blockquote>)/';
$ipattern = '/(<img)([^>]*)(>)([^<]*)(<\/img>)/';

接下来,通过preg_match_all将所有块引用和图像放到一个新数组中:

preg_match_all( $bpattern, $content, $blockquotes );
preg_match_all( $ipattern, $content, $imgs );

现在,通过preg_replace:

从$ content中删除这些项目
preg_replace( array( $bpattern, $ipattern ), '', $content );

最后,$blockquotes$imgs数组将是匹配数组的数组,使用foreach[0]输出整个元素:

foreach( $blockquotes[0] as $bquote ) {
     echo $bquote;
}

foreach( $imgs[0] as $img ) {
     echo $img;
}