是否在第二段后插入不带<P>标记的内容?

时间:2013-06-24 作者:AndrettiMilas

我使用如下代码在第一段后插入广告。

问题是,此代码要求在段落标记中显示内容,我想使用此代码插入DIV。
当我简单地用DIV标记替换标记时,代码不再工作。

如何从代码中删除段落标记,同时保持代码的功能?

<?php
$paragraphAfter= 1; //display after the first paragraph
$content = apply_filters(\'the_content\', get_the_content());
$content = explode("<p>", $content);
for ($i = 0; $i <count($content); $i++ ) {
if ($i == $paragraphAfter) { ?>

CONTENT GOES HERE

<?php }
echo $content[$i] . "</p>";
} ?>

2 个回复
最合适的回答,由SO网友:s_ha_dum 整理而成

我需要强调的是,我认为这将是非常不稳定的,你可能不会总是得到你想要的结果,但在简单的情况下,这应该是可行的。

$content = apply_filters(\'the_content\', get_the_content());
$content = explode("</p>", $content, 2);
// var_dump($content); // debug
echo $content[0].\'</p>\';
echo \'<div>Extra Content</div>\';
if (!empty($content[1])) {
  echo $content[1];
}

SO网友:Liam Hogan

这个与上面发布的类似,但是有一个额外的循环来显示内容后面的所有段落。

<?php $content = wpautop( get_the_content() );
$content = explode("</p>", $content);
echo wpautop( $content[0] ).\'</p>\'; ?>

<p>Special content or page breakpoint</p>

<?php                               
$i = 0;
foreach ($content as $paragraph => $value) {
    if ( $i > 0 ) { echo wpautop( $content[$i] ); }
    $i++;
} ?>
wpautop( get_the_content() ) 通过段落标记传递要拆分的格式化帖子内容explode(\'</p>\', $content)foreach 在折叠后循环所有段落。

结束