如何在wordpress中的X段后插入广告

时间:2015-10-27 14:36:00

标签: php wordpress

我在我的wordpress网站上使用代码,该代码在第8段之后显示广告。 我怎样才能做到这一点。 uhmm。 "如果内容少于8个段落,请不要展示广告"

提前致谢。

add_filter( 'the_content', 'prefix_insert_post_ads' );

function prefix_insert_post_ads( $content ) {

    $ad_code = '<div>ads code</div>';

    if ( is_single() && ! is_admin() ) {
        return prefix_insert_after_paragraph( $ad_code, 8, $content );
    }

    return $content;
}

function prefix_insert_after_paragraph( $insertion, $paragraph_id, $content ) {
    $closing_p = '</p>';
    $paragraphs = explode( $closing_p, $content );
    foreach ($paragraphs as $index => $paragraph) {

        if ( trim( $paragraph ) ) {
            $paragraphs[$index] .= $closing_p;
        }

        if ( $paragraph_id == $index + 1 ) {
            $paragraphs[$index] .= $insertion;
        }
    }

    return implode( '', $paragraphs );
}

1 个答案:

答案 0 :(得分:1)

如果您要做的只是确保如果内容比您的功能允许的内容短,则不要显示广告,只需将foreach块包装在一个小支票内:

function prefix_insert_after_paragraph( $insertion, $paragraph_id, $content ) {
    $closing_p = '</p>';
    $paragraphs = explode( $closing_p, $content );
    if (count($paragraphs) >= $insertion) {
        foreach ($paragraphs as $index => $paragraph) {

            if ( trim( $paragraph ) ) {
                $paragraphs[$index] .= $closing_p;
            }

            if ( $paragraph_id == $index + 1 ) {
                $paragraphs[$index] .= $insertion;
            }
        }

        return implode( '', $paragraphs );
    }

    return $content;
}

我不确定这是不是你打算做的,但至少这是我的解释:)

这样做基本上是检查您是否有比展示广告所需的段落更多的段落,然后运行循环。否则,它只会返回内容。返回内容的原因是prefix_insert_post_ads具有一致的行为。