【发布时间】:2016-05-11 10:01:20
【问题描述】:
我的网站设置为在第 7 段显示添加内容。因为不是每个帖子都和另一个帖子一样长,这可能会导致一些奇怪的广告展示位置。
相反,我想使用以下逻辑:
If number_of_paragraphs => 14 然后paragraph_insert_id= number_of_paragraphs / 2。 Else nothing.
//adding mid post add based on paragraph
add_filter( 'the_content', 'prefix_insert_post_ads_mid' );
function prefix_insert_post_ads_mid( $content ) {
$ad_code = '<div id="adsensemid">code goes here</div>';
if ( is_single() && ! is_admin() ) {
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 );
// floor or ceil; to make it round
$mid = ceil(length($paragraphs) / 2);
foreach ($paragraphs as $index => $paragraph) {
if ( trim( $paragraph ) ) {
$paragraphs[$index] .= $closing_p;
}
if ( $mid == $index + 1 ) {
$paragraphs[$index] .= $insertion;
}
}
return implode( '', $paragraphs );
}
不幸的是,我的第一次修改已经破坏了脚本。当应用于网站时,所有内容都是空白的。有没有人能找出漏洞?任何帮助将不胜感激!
ps 当前工作脚本:
//adding mid post add based on paragraph
add_filter( 'the_content', 'prefix_insert_post_ads_mid' );
function prefix_insert_post_ads_mid( $content ) {
$ad_code = '<div id="adsensemid></div>';
if ( is_single() && ! is_admin() ) {
return prefix_insert_after_paragraph( $ad_code, 7, $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 );
}
【问题讨论】: