我使用以下代码在第4段之后的帖子上显示广告:-
add_filter( \'the_content\', \'prefix_insert_post_ads\' );
function prefix_insert_post_ads( $content ) {
$ad_code = My Ad code;
if ( is_single() && ! is_admin() ) {
return prefix_insert_after_paragraph( $ad_code, 4, $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 );
}
问题是广告也出现在AMP页面上。不仅是广告,无论我放什么
$ad_code
开始出现在AMP页面中。我只想在
the_content
对于非AMP页面。
对于AMP页面,我想在第4段之后显示新闻稿表单。我怎样才能做到这一点?我知道我可以添加display:none
到AMP页上的div。但是,还有别的办法吗?
而且,我正在使用Wordpress的AMP插件。
最合适的回答,由SO网友:phatskat 整理而成
您应该能够在过滤器功能中执行以下操作:
function prefix_insert_post_ads( $content ) {
if ( is_admin() ) {
return $content;
}
if ( ! is_single() ) {
return $content;
}
if ( ! is_amp_endpoint() ) {
$ad_code = My Ad code;
return prefix_insert_after_paragraph( $ad_code, 4, $content );
}
// We must be on amp:
return amp_insert_after_paragraph( ... );
}
然后定义
amp_isnert_after_paragraph
功能可在需要的位置插入新闻稿。