如何修改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
相关产品推荐
相关产品推荐

