【问题标题】:Adding 2 different Ads After Paragraph of WordPress Post在 WordPress 帖子的段落之后添加 2 个不同的广告
【发布时间】:2020-11-27 15:02:14
【问题描述】:

我想在 wordpress 发帖后添加 2 个不同的广告

我已尝试使用此代码。但它没有用。有人可以帮忙吗?

$ad_code = 'ad code 1';
$ad_code2 = 'ad code 2';
if ( is_single() && ! is_admin() ) {
  $content = prefix_insert_after_paragraph( $ad_code, 2, $content );
  $content = prefix_insert_after_paragraph( $ad_code2, 6, $content );
  return $content;
}

// Parent Function

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】:

    试试这个:

    add_filter( 'the_content', 'add_ads_to_content' );
    
    function add_ads_to_content( $content ) {
    
        $ads = array(
            2 =>  'ad code 1', // paragraph_id => ad_code
            4 => 'ad code 2', // paragraph_id => ad_code
            6 => 'ad code 3' // paragraph_id => ad_code
        );
    
        if ( is_single() && ! is_admin() ) {
            foreach ($ads as $paragraph_id => $ad_code) {
                $content = prefix_insert_after_paragraph( $ad_code, $paragraph_id, $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 );
    }
    

    【讨论】:

    • 这确实很棒。我现在想添加一个 else 语句,如果帖子是 AMP,它会在其中输出不同的广告代码。我使用了 AMP 端点。请看下面的代码。
    【解决方案2】:

    法鲁克 - 非常感谢。我写了一个 else 语句,它将为 AMP 帖子显示不同的代码。但是,这似乎不起作用。有没有更优雅的

    add_filter( 'the_content', 'add_ads_to_content' );
    
    function add_ads_to_content( $content ) {
    
        $ads = array(
            2 =>  'ad code', // paragraph_id => ad_code
            6 => 'ad code', // paragraph_id => ad_code
        );
    ///ad array 2
            $ads2 = array(
            2 =>  'ad code', // paragraph_id => ad_code
            6 => 'ad code', // paragraph_id => ad_code
        );
    ///statements
        if ( is_single() && ! is_admin() ) {
            foreach ($ads as $paragraph_id => $ad_code) {
                $content = prefix_insert_after_paragraph( $ad_code, $paragraph_id, $content );
            }
        }
        
        elseif ( is_single() && ! is_admin() ) { if(is_amp_endpoint())
            foreach ($ads2 as $paragraph_id => $ad_code2) {
                $content = prefix_insert_after_paragraph( $ad_code2, $paragraph_id, $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 );
    }
    

    【讨论】:

      猜你喜欢
      • 2018-08-06
      • 1970-01-01
      • 2015-10-29
      • 1970-01-01
      • 2018-01-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-11
      相关资源
      最近更新 更多