You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改PHP代码实现每5段后重复插入广告?

如何修改代码实现每5段重复插入广告?

没问题,我来帮你调整代码,让广告能每5段之后自动重复插入,而不是只插一次~

你的原代码逻辑已经很扎实了,只需要调整核心的判断条件就行。下面是修改后的完整代码:

// 每5段后插入广告
add_filter( 'the_content', 'prefix_insert_post_ads' );
function prefix_insert_post_ads( $content ) {
    $ad_code = '<center>AD CODE</center>';
    // 仅在单篇文章前台页面生效
    if ( is_single() && ! is_admin() ) {
        return prefix_insert_after_paragraph( $ad_code, 5, $content );
    }
    return $content;
}

// 通用插入函数:按指定间隔在段落后插入内容
function prefix_insert_after_paragraph( $insertion, $interval, $content ) {
    $closing_p = '</p>';
    $paragraphs = explode( $closing_p, $content );
    
    foreach ($paragraphs as $index => $paragraph) {
        // 还原段落闭合标签(避免拆分后丢失)
        if ( trim( $paragraph ) ) {
            $paragraphs[$index] .= $closing_p;
        }
        
        // 关键修改:每间隔指定段落数就插入广告,且跳过最后一段(避免空内容后插入)
        if ( ( $index + 1 ) % $interval == 0 && $index != count($paragraphs) - 1 ) {
            $paragraphs[$index] .= $insertion;
        }
    }
    
    return implode( '', $paragraphs );
}

核心修改说明:

  • 把原函数的参数$paragraph_id改成了$interval(更贴合“插入间隔”的语义)
  • 把原有的单次判断$paragraph_id == $index + 1,替换成了取余判断( $index + 1 ) % $interval == 0——意思是只要段落序号是5的倍数(第5、10、15…段),就插入广告
  • 新增了$index != count($paragraphs) - 1的判断,防止在文章最后一段(如果刚好是5的倍数)之后插入广告(避免出现无意义的尾部广告)

这样修改后,广告就会自动在每5段之后重复插入啦~

内容的提问来源于stack exchange,提问作者Komolafe Olumide

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.28 22:37:48