Как вывести рекламу после определенного абзаца в посте или на странице

Как вывести рекламу после определенного абзаца в посте или на странице | n-wp.ru
Как вывести рекламу после определенного абзаца в посте или на странице

Размещение рекламы в самом эффективном месте поста или страницы является нетривиальной задачей. Как показывает практика, самая эффективная реклама, которую замечают, по которой кликают — реклама, размещенная внутри контента. Расположить ее внутри поста можно, воспользовавшись шорткодом, однако этот ручной метод требует постоянного контроля — нужно, как минимум, вставить шорткод в содержимое поста или страницы. Для того, чтобы автоматизировать эту операцию, можно воспользоваться фильтром, который будет вставлять рекламу в пост после определенного абзаца.

Как вывести рекламу после определенного абзаца в посте или на странице

Для того, чтобы вывести рекламу после определенного абзаца, вставьте в файл functions.php используемой вами темы следующий код:

// Вывод рекламны в посте после определенного абзаца

add_filter( 'the_content', 'tp_ad_to_post_content' );
function tp_ad_to_post_content( $content ) {
        if( !is_single() )
            return $content;
            $paragraphAfter = 4;
            $content = explode ( "

", $content ); $new_content = ''; for ( $i = 0; $i < count ( $content ); $i ++ ) { if ( $i == $paragraphAfter ) { $new_content .= ' здесь ваш код рекламы '; } $new_content .= $content[$i] . "

"; } return $new_content; }

$paragraphAfter = 4; — это номер абзаца, после которого выводится реклама

А что делать, если вам нужно выводить рекламу не во всех постах, исключить некоторые? Можно модифицировать этот код, добавив список ID постов, в которых реклама выводиться не будет:

// Вывод рекламы в посте после определенного абзаца, за исключением определенных постов

add_filter( 'the_content', 'tp_ad_to_post_content' );
function tp_ad_to_post_content( $content ) {
        if( !is_single() )
            return $content;
            $paragraphAfter = 4; 
            $content = explode ( "

", $content ); $new_content = ''; for ( $i = 0; $i < count ( $content ); $i ++ ) { if ( $i == $paragraphAfter ) { if ( ! is_single ( array(1026, 1027, 1029, 1040) ) ) { $new_content .= ' здесь ваш код рекламы '; } } $new_content .= $content[$i] . "

"; } return $new_content; }

$paragraphAfter = 4; — это номер абзаца, после которого выводится реклама
1026, 1027, 1029, 1040 — это ID постов, в которых реклама выводиться не будет

Если вам нужно выводить рекламу не только в постах, но и на страницах, то вы можете использовать фильтр с подобной конструкцией:

// Вывод рекламн на странице после определенного абзаца

add_filter( 'the_content', 'tp_ad_to_page_content' );
function tp_ad_to_page_content( $content ) {
        if( !is_page() )
            return $content;
            $paragraphAfter = 4;
            $content = explode ( "

", $content ); $new_content = ''; for ( $i = 0; $i < count ( $content ); $i ++ ) { if ( $i == $paragraphAfter ) { $new_content .= ' здесь ваш код рекламы '; } $new_content .= $content[$i] . "

"; } return $new_content; }

$paragraphAfter = 4; — это номер абзаца, после которого выводится реклама

Если нужно исключить некоторые страницы, то код нужно изменить:

// Вывод рекламы в посте после определенного абзаца, за исключением определенных постов

add_filter( 'the_content', 'tp_ad_to_page_content' );
function tp_ad_to_page_content( $content ) {
        if( !is_page() )
            return $content;
            $paragraphAfter = 4; 
            $content = explode ( "

", $content ); $new_content = ''; for ( $i = 0; $i < count ( $content ); $i ++ ) { if ( $i == $paragraphAfter ) { if ( ! is_page ( array(100, 101, 103, 109) ) ) { $new_content .= ' здесь ваш код рекламы '; } } $new_content .= $content[$i] . "

"; } return $new_content; }

$paragraphAfter = 4; — это номер абзаца, после которого выводится реклама
100, 101, 103, 109 — это ID страниц, на которых реклама выводиться не будет

Не трудно догадаться, что подобный фильтр можно использовать не только для вывода рекламы Google AdSense или Яндекс.Директ, но и для произвольных баннеров, контекстной и тизерной рекламы, а так же для любого блока с дополнительной информацией, не обязательно рекламного характера, например, для вывода постов похожей тематики.

Автор tiaurus 2182 Articles
Являюсь создателем n-wp.ru — блога о WordPress для новичков. Мне интересно многое, поэтому еще я сделал 123-box.ru — блог о программах для Windows, и tiaurus.info — блог о красоте.

1 Kомментарий

  1. Как доработать, чтобы рекламные блоки не попадали в таблицы. Также бывают случаи, когда блок попадает между абзацем и списком (). В этом случае список некорректно отображается.

Оставить комментарий

Ваш электронный адрес не будет опубликован.


*