gpt4 book ai didi

php - 在设定的段落数后添加额外的广告

转载 作者:可可西里 更新时间:2023-11-01 00:59:20 26 4
gpt4 key购买 nike

我目前已经设置了我的网站,它会在任何文章的第 2 段之后自动添加 Google Adsense 广告,但如果有人能够提供帮助,我想对此进行改进。

我想在此代码中添加另外 2 个广告;一个在第 6 段之后,另一个在第 10 段之后。如果文章未达到这些段落编号,则不应显示广告。

这可能是非常明显的事情,但我尝试过的任何事情都会导致 functions.php 文件在我重新加载网站时崩溃。

我的代码是...

add_filter( 'the_content', 'prefix_insert_post_ads' );

function prefix_insert_post_ads( $content ) {

$ad_code = '<div class="mobilead .visible-xs-block hidden-sm hidden-md hidden-lg"><script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script><ins class="adsbygoogle"
style="display:block"
data-ad-client="ca-pub-XXXX"
data-ad-slot="1716361890"
data-ad-format="auto"></ins><script>(adsbygoogle = window.adsbygoogle || []).push({});</script></div>';

if ( is_single() && ! is_admin() ) {
return prefix_insert_after_paragraph( $ad_code, 2, $content );
}

return $content;
}

// Parent Function that makes the magic happen

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 );
}

作为补充问题 - 是否有办法将这些广告限制为仅在帖子上展示,而不是在页面上展示?目前它们正在任何地方展示。

如有任何帮助,我们将不胜感激。

最佳答案

您的广告代码错误太多,我无法尝试猜测它应该是什么(它有一个开头 <div> 但没有结尾 </div>,它看起来像是 javascript在 <script> 标签之外)

...所以我跳过那部分,简单地展示如何插入另一个 p aragraph 而不是 - 这将在您想要的位置插入东西,并且还展示了如何使用 get_post_type()确保广告只显示在帖子上:

add_filter( 'the_content', 'prefix_insert_post_ads' );

function prefix_insert_post_ads( $content ) {
//The last condition here ensures that ads are only added to posts
if ( is_single() && !is_admin() && get_post_type() === 'post' ) {
return prefix_insert_ads( $content );
}

return $content;
}

function prefix_insert_ads( $content ) {
$closing_p = '</p>';
$paragraphs = explode( $closing_p, $content );
foreach ($paragraphs as $index => $paragraph) {
$paragraphs[$index] .= $closing_p;
if ( in_array($index, array(1, 5, 9)) ) {
//Replace the html here with a valid version of your ad code
$paragraphs[$index] .= '<p style="background:#f00">Ad goes here</p>';
}
}

return implode( '', $paragraphs );
}

关于php - 在设定的段落数后添加额外的广告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31859225/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com