Размещение рекламы в самом эффективном месте поста или страницы является нетривиальной задачей. Как показывает практика, самая эффективная реклама, которую замечают, по которой кликают — реклама, размещенная внутри контента. Расположить ее внутри поста можно, воспользовавшись шорткодом, однако этот ручной метод требует постоянного контроля — нужно, как минимум, вставить шорткод в содержимое поста или страницы. Для того, чтобы автоматизировать эту операцию, можно воспользоваться фильтром, который будет вставлять рекламу в пост после определенного абзаца.
[img attachment=»8474″ align=»alignnone» size=»full» alt=»n-wp.ru_20151127160631″ /]
Для того, чтобы вывести рекламу после определенного абзаца, вставьте в файл functions.php используемой вами темы следующий код: functions.php
[code]
// Вывод рекламны в посте после определенного абзаца
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 ( "</p>", $content );
$new_content = »;
for ( $i = 0; $i < count ( $content ); $i ++ ) {
if ( $i == $paragraphAfter ) {
$new_content .= ‘ здесь ваш код рекламы ‘;
}
$new_content .= $content[$i] . "</p>";
}
return $new_content;
}
[/code]
$paragraphAfter = 4; — это номер абзаца, после которого выводится реклама
А что делать, если вам нужно выводить рекламу не во всех постах, исключить некоторые? Можно модифицировать этот код, добавив список ID постов, в которых реклама выводиться не будет: functions.php
[code]
// Вывод рекламы в посте после определенного абзаца, за исключением определенных постов
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 ( "</p>", $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] . "</p>";
}
return $new_content;
}
[/code]
$paragraphAfter = 4; — это номер абзаца, после которого выводится реклама
1026, 1027, 1029, 1040 — это ID постов, в которых реклама выводиться не будет
Если вам нужно выводить рекламу не только в постах, но и на страницах, то вы можете использовать фильтр с подобной конструкцией: functions.php
[code]
// Вывод рекламн на странице после определенного абзаца
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 ( "</p>", $content );
$new_content = »;
for ( $i = 0; $i < count ( $content ); $i ++ ) {
if ( $i == $paragraphAfter ) {
$new_content .= ‘ здесь ваш код рекламы ‘;
}
$new_content .= $content[$i] . "</p>";
}
return $new_content;
}
[/code]
$paragraphAfter = 4; — это номер абзаца, после которого выводится реклама
Если нужно исключить некоторые страницы, то код нужно изменить:
functions.php
[code]
// Вывод рекламы в посте после определенного абзаца, за исключением определенных постов
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 ( "</p>", $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] . "</p>";
}
return $new_content;
}
[/code]
$paragraphAfter = 4; — это номер абзаца, после которого выводится реклама
100, 101, 103, 109 — это ID страниц, на которых реклама выводиться не будет
Не трудно догадаться, что подобный фильтр можно использовать не только для вывода рекламы Google AdSense или Яндекс.Директ, но и для произвольных баннеров, контекстной и тизерной рекламы, а так же для любого блока с дополнительной информацией, не обязательно рекламного характера, например, для вывода постов похожей тематики.
Источник: http://n-wp.ru/29846