我有以下代码,它从我的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
编辑:我想从帖子中自动删除图片和块引用,这样我就可以将它们放在页面的不同部分。而不是让它们显示在管理面板中。
答案 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;
}