WordPress文章段落间插入多段广告 合并代码适配Astra子主题
问题解答
多广告实现逻辑与常见疑问
- 多条广告投放不需要重构现有代码,只需要在已有的内容插入函数中新增广告变量、多次调用插入方法即可,适配Astra子主题的场景不需要做额外兼容,直接粘贴到子主题
functions.php文件即可生效 - 广告代码是否需要独立生成完全取决于你的投放需求:如果要投放相同内容的广告,可以直接复用同一段广告代码;如果要投放不同内容的广告,就需要分别生成独立的广告代码填入对应变量
合并后可直接使用的完整代码
// 在文章内容指定段落后插入多条广告 add_filter( 'the_content', 'insert_post_ads' ); function insert_post_ads( $content ) { // 配置第一段广告代码,替换单引号内的内容为你的实际广告代码 $first_ad_code = '<div>Insert your first Ads code here</div>'; // 配置第二段广告代码,如果要投放相同广告可以直接写 $second_ad_code = $first_ad_code; $second_ad_code = '<div>Insert your second Ads code here</div>'; if ( is_single() && ! is_admin() ) { // 第一个参数是广告代码变量,第二个参数是插入的段落位置(数字代表第N段后插入),可自行修改 $content = prefix_insert_after_paragraph( $first_ad_code, 3, $content ); $content = prefix_insert_after_paragraph( $second_ad_code, 6, $content ); return $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 ); }
使用注意事项
- 粘贴代码前请先备份子主题
functions.php文件,避免语法错误导致站点异常 - 如果需要新增更多广告,只需要仿照现有逻辑新增广告变量,再追加一行
prefix_insert_after_paragraph调用即可 - 代码仅在前台单篇文章页生效,不会影响后台编辑体验和其他页面内容
内容的提问来源于stack exchange,提问作者MD. ASHIKUR RAHMAN
相关产品推荐
相关产品推荐

