前言:我不是一个好的程序员。
我需要使用 $post->post_content
来获取原始帖子,以便我可以使用 EXPLODE php 命令。但是当我确实使用$post->post_content
时,它会过滤掉我的帖子中需要保留的标签。这是我的脚本。我做错了什么?谢谢!
<?php
$content = apply_filters('the_content', $post->post_content);
$contents = array_filter(explode("</p>", $content));
foreach ($contents as $content) {
if (strpos($content, '<img') !== false ) {
echo $content;
echo "</p>after image ad";
} else {
echo $content;
echo "</p>";
}
}
?>
我基本上是在尝试在任何仅包含图像的段落之后插入广告。
似乎当你调用:
$content = apply_filters('the_content', $post->post_content);
它应用autop
来拆分段落,也应用于所有短代码do_shortcode
。
所以你最好不要在这里打电话给apply_filters
,而是打电话给wpautop
:
请参阅:http://codex.wordpress.org/Function_Reference/wpautop
<?php
$content = wpautop( $post->post_content );
$contents = array_filter(explode("</p>", $content));
$result = '';
foreach ($contents as $content) {
$result .= $content.'</p>';
if (strpos($content, '<img') !== false ) {
$result .= "after image ad";
}
}
$content = apply_filters('the_content', $result);
echo $result;
?>