修改PHP以阻止广告出现在第一段之后

  • 本文关键字:之后 一段 PHP 修改 php ads
  • 更新时间 :
  • 英文 :


此代码每隔5段显示广告,但从第一段开始。如何让它在前5段之后开始显示广告?

//Insert ads after every 5th paragraph
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;
}
// 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 ( $index % $paragraph_id === 0 ) {
$paragraphs[$index] .= $insertion;
}
}
return implode( '', $paragraphs );
}

尝试下面的函数。我添加了一个新变量$contentWithAds在for循环中获取其内容。

您必须替换";你的广告";与您想要插入的广告以及";您的内容";使用您的内容。

答案是完整的。您不需要额外的代码。

<?php
function prefix_insert_after_paragraph( $insertion, $paragraph_id, $content ) 
{
$contentWithAds = "";
$closing_p = '</p>';
$paragraphs = explode($closing_p, $content);
for($x=0; $x<count($paragraphs); $x++)
{
$y = $x + 1;
if($y % $paragraph_id === 0)
{
$contentWithAds .= $paragraphs[$x].$closing_p.$insertion;
}
else
{
$contentWithAds .= $paragraphs[$x].$closing_p;
}
}
return $contentWithAds;
}
$paragraph_id = 5;
$insertion = "your-ads";
$content = "your-content";
print prefix_insert_after_paragraph( $insertion, $paragraph_id, $content );
?>

相关内容

最新更新