WordPress:在X段内容后显示框

时间:2018-01-25 18:47:15

标签: php wordpress

我希望在the_content中的固定数量的段落后显示包含其他信息的框。

我知道,我可以将更多标签用于此目的。这就是我现在正在做的事情。并且还有一个选项可以在帖子中使用短代码。 但这并不是我想要/需要的东西,因为这些东西会改变帖子本身。

使用以下代码,我可以计算帖子中的每个<p> - 标记。

$query = get_post(get_the_ID());
$content = apply_filters('the_content', $query->post_content);
$p_count = substr_count($content, '<p>');

有没有办法选择特定的<p>代码(例如thrid)并在其后添加我的代码?

另一个想法是使用以下代码计算标记:

$query = get_post(get_the_ID());
$content = apply_filters('the_content', $query->post_content);

$p_counts = substr_count($content, '<p>');
$p = 0;

foreach ($p_counts as $p_count) {
        $p++;
}
echo $p;

也许有办法在特定的<p>号后面添加信息框。

2 个答案:

答案 0 :(得分:0)

我在这里找到了一个解决方案:https://wordpress.stackexchange.com/a/74242/96806

这是代码:

<?php

$paragraphAfter[1] = '<div>AFTER FIRST</div>'; //display after the first paragraph
$paragraphAfter[3] = '<div>AFTER THIRD</div>'; //display after the third paragraph
$paragraphAfter[5] = '<div>AFTER FIFtH</div>'; //display after the fifth paragraph

$content = apply_filters( 'the_content', get_the_content() );
$content = explode("</p>", $content);
$count = count($content);
for ($i = 0; $i < $count; $i++ ) {
    if ( array_key_exists($i, $paragraphAfter) ) {
        echo $paragraphAfter[$i];
    }
    echo $content[$i] . "</p>";
}

?>

答案 1 :(得分:-1)

如果您的内容中没有图片或其他标签,可以使用jQuery轻松完成