Как показывать рекламу Google между публикациями?
Я хочу показывать объявления Google между текстовым контентом, например, показывать 3 объявления, одно после 1-го пункта, второе после 3-го пункта и одно в конце последнего пункта.
Я знаю, что мне нужно внести изменения в single.php
, но, будучи новичком в php, я не могу этого сделать.
Было бы очень полезно, если бы кто-нибудь мог помочь мне сделать это. Спасибо.
2 answers
Вы можете использовать короткий код или the_content
фильтр. Я думаю, что фильтр the_content
лучше, потому что вы не вводите никаких строк в свой пост, поэтому контент можно экспортировать и использовать на других платформах, если это необходимо. Для примера, для отображения блока adsense после первого параграфа:
add_filter( 'the_content', 'tbn_ads_inside_content' );
function tbn_ads_inside_content( $content ) {
//We don't want to modify the_content in de admin area
if( !is_admin() ) {
$ads = "<p>your_ads_code</p>";
$p_array = explode('</p>', $content );
$p_count = 1;
if( !empty( $p_array ) ){
array_splice( $p_array, $p_count, 0, $ads );
$output = '';
foreach( $p_array as $key=>$value ){
$output .= $value;
}
}
}
return $output;
}
Вот функция, которую я использую для добавления виджета после второго абзаца в сообщении. Это только для первого поста и отдельных постов, поэтому вам нужно будет немного подправить его, если вам нужно показать это во всех постах. Вы должны иметь возможность изменить это в соответствии с вашими потребностями. Надеюсь, это поможет
// Add advertising widget within the firts post and single posts
function pietergoosen_insert_content_after_second_paragraph_filter( $content ) {
static $first;
$first = (!isset($first)) ? true : false;
if (true == $first) {
ob_start();
echo '<div class="widget-box">';
dynamic_sidebar( 'sidebar-19' );
echo '</div><!-- end .widget-box -->';
$new_content = ob_get_clean();
if ( ! is_admin() ) {
return pietergoosen_insert_content_after_second_paragraph( $new_content, 2, $content );
}
}
return $content;
}
add_filter('the_content','pietergoosen_insert_content_after_second_paragraph_filter');
// Paragraph explode and insert
function pietergoosen_insert_content_after_second_paragraph( $new_content, $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] .= $new_content;
}
}
return implode( '', $paragraphs );
}