如果想在 WordPress 文章段落后添加自定义内容,比如在文章第二段后添加广告,可以尝试用下面的代码:
- // 在文章第二段之后插入内容
- add_filter( 'the_content', 'prefix_insert_post_ads' );
- function prefix_insert_post_ads( $content ) {
- $ad_code = '<div>添加的文字</div>';
- if ( is_single() && ! is_admin() ) {
- return prefix_insert_after_paragraph( $ad_code, 2, $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 );
- }
分别在段落 2、4、6 后面添加不同的内容
- 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 );
- }
如果只显示在某个分类文章中添加,也可以这么写
- add_filter( 'the_content', 'prefix_insert_post_ads' );
- function prefix_insert_post_ads( $content ) {
- $ad_code = '<div>自定义文字</div>';
- if ( is_single() && ! is_admin() && in_category('29') ) {
- return prefix_insert_after_paragraph( $ad_code, $content );
- }
- return $content;
- }
- function prefix_insert_after_paragraph( $insertion, $content ) {
- $closing_p = '</p>';
- $paragraphs = explode( $closing_p, $content );
- $paragraph_id = round(count($paragraphs) / 2);
- foreach ($paragraphs as $index => $paragraph) {
- if ( trim( $paragraph ) ) {
- $paragraphs[$index] .= $closing_p;
- }
- if ( $paragraph_id == $index + 1 ) {
- $paragraphs[$index] .= $insertion;
- }
- }
- return implode( '', $paragraphs );
- }
- 1、本站大部分内容均收集于网络,若内容侵犯到您的权益,请发送邮件至:service@wuyanshuo.cn,我们将第一时间处理!
- 2、本站资源所需价格并非资源售卖价格,是收集、整理、编辑以及本站运营的适当补贴,并且本站不提供任何免费技术服务。
- 3、所有资源仅限参考和学习,版权归原作者所有,更多请阅读无言说网络服务器协议。