Php 根据段落数在中心添加addcode
我的网站设置为在第7段显示附加内容。因为不是每个帖子都和其他帖子一样长,这会导致一些奇怪的广告放置 相反,我想使用以下逻辑:Php 根据段落数在中心添加addcode,php,wordpress,web,Php,Wordpress,Web,我的网站设置为在第7段显示附加内容。因为不是每个帖子都和其他帖子一样长,这会导致一些奇怪的广告放置 相反,我想使用以下逻辑: 如果段落数=>14则段落插入\u id=段落数/2其他无任何内容 //adding mid post add based on paragraph add_filter( 'the_content', 'prefix_insert_post_ads_mid' ); function prefix_insert_post_ads_mid( $content ) {
如果段落数=>14
则段落插入\u id=段落数/2
<代码>其他无任何内容
//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 );
}
//根据段落添加中后期添加
添加过滤器(‘内容’、‘前缀’、‘插入’、‘发布’、‘广告’、‘中间’);
函数前缀\插入\发布\广告\中间($content){
$ad_code='代码在这里';
如果(is_single()&&!is_admin()){
返回前缀\在\段后插入\段($ad\ U代码,$content);
}
返回$content;
}
函数前缀\插入\在\段后面($insert,$content){
$closing_p='';
$段落=分解($closing\u p,$content);
//地板或天花板;使其圆
$mid=ceil(长度($段落)/2);
foreach($index=>$paration的段落){
如果(删减($段)){
$段落[$index]。=$closing\u p;
}
如果($mid==$index+1){
$段落[$索引]。=$插入;
}
}
返回内爆(“”,$段);
}
不幸的是,我的第一次修改已经破坏了脚本。应用于网站时,所有内容均为空白。有没有人能找到缺陷?任何帮助都将不胜感激
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 );
}
//根据段落添加中后期添加
添加过滤器(‘内容’、‘前缀’、‘插入’、‘发布’、‘广告’、‘中间’);
函数前缀\插入\发布\广告\中间($content){
$ad_code='我已经确定了这个问题。代码现在已经完全可用了
$mid = ceil(count($paragraphs) / 2);
完整代码示例:
//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(count($paragraphs) / 2);
foreach ($paragraphs as $index => $paragraph) {
if ( trim( $paragraph ) ) {
$paragraphs[$index] .= $closing_p;
}
if ( $mid == $index + 1 ) {
$paragraphs[$index] .= $insertion;
}
}
return implode( '', $paragraphs );
}
//根据段落添加中后期添加
添加过滤器(‘内容’、‘前缀’、‘插入’、‘发布’、‘广告’、‘中间’);
函数前缀\插入\发布\广告\中间($content){
$ad_code='代码在这里';
如果(is_single()&&!is_admin()){
返回前缀\在\段后插入\段($ad\ U代码,$content);
}
返回$content;
}
函数前缀\插入\在\段后面($insert,$content){
$closing_p='';
$段落=分解($closing\u p,$content);
//地板或天花板;使其圆
$mid=ceil(计数($段落)/2);
foreach($index=>$paration的段落){
如果(删减($段)){
$段落[$index]。=$closing\u p;
}
如果($mid==$index+1){
$段落[$索引]。=$插入;
}
}
返回内爆(“”,$段);
}
我确实在它的设计中遇到了一个缺陷。如果你使用分页符(下一页标签)然后这个脚本仍然会计算整个内容。假设你有一篇文章有两页,每页有4段。脚本将计算8,并在第4段后自动跳转。因为文章被拆分,所以它不会是中心,而是两页中每一页的最后一段
现在,我已经将原始代码修改为以下条件
段落我已经确定了这个问题。代码现在已经完全运行了
$mid = ceil(count($paragraphs) / 2);
完整代码示例:
//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(count($paragraphs) / 2);
foreach ($paragraphs as $index => $paragraph) {
if ( trim( $paragraph ) ) {
$paragraphs[$index] .= $closing_p;
}
if ( $mid == $index + 1 ) {
$paragraphs[$index] .= $insertion;
}
}
return implode( '', $paragraphs );
}
//根据段落添加中后期添加
添加过滤器(‘内容’、‘前缀’、‘插入’、‘发布’、‘广告’、‘中间’);
函数前缀\插入\发布\广告\中间($content){
$ad_code='代码在这里';
如果(is_single()&&!is_admin()){
返回前缀\在\段后插入\段($ad\ U代码,$content);
}
返回$content;
}
函数前缀\插入\在\段后面($insert,$content){
$closing_p='';
$段落=分解($closing\u p,$content);
//地板或天花板;使其圆
$mid=ceil(计数($段落)/2);
foreach($index=>$paration的段落){
如果(删减($段)){
$段落[$index]。=$closing\u p;
}
如果($mid==$index+1){
$段落[$索引]。=$插入;
}
}
返回内爆(“”,$段);
}
我确实在它的设计中遇到了一个缺陷。如果你使用分页符(下一页标签)然后这个脚本仍然会计算整个内容。假设你有一篇文章有两页,每页有4段。脚本将计算8,并在第4段后自动跳转。因为文章被拆分,所以它不会是中心,而是两页中每一页的最后一段
现在,我已经将原始代码修改为以下条件
段落