【问题标题】:How to insert ads right after X paragraph in wordpress如何在wordpress中的X段之后插入广告
【发布时间】:2015-10-28 00:01:19
【问题描述】:

我在我的 wordpress 网站上使用了一个代码,该代码在第 8 段之后显示广告。 我怎样才能使它像。嗯。 “如果内容少于 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 );
}

【问题讨论】:

    标签: php wordpress


    【解决方案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 具有一致的行为。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-06
      • 2020-10-01
      • 1970-01-01
      相关资源
      最近更新 更多