Как добавить Google Adsense в середину записи WordPress
5 февраля 2015 в 13:00 в категории Статьи о php 10 комментариевПри создании сайта, если вы собираетесь его в дальнейшем монетизировать, следует обратить внимание и продумать места для размещения рекламы в будущем. И я говорю не только о Google Adsense, но и про другие рекламные блоки.
Одними из популярных мест для размещения рекламных блоков является шапка сайта (начало статьи, страницы), но разместить там код рекламного баннера достаточно просто, а как разместить код того же Google Adsense в тексте записи сайта на WordPress без плагинов?
Итак, для того чтобы разместить код рекламного блока Google Adsense или других рекламных площадок, вам необходимо будет отредактировать файл functions.php в папке с вашей темой.
Добавим в код вашего файла (можно в конец файла) следующую функцию:
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; // добавляем вырезанные на 3 строке закрывающие теги параграфа } if ( $paragraph_id == $index + 1 ) { // если номер текущего параграфа = номеру требуемого - добавляем код блока $paragraphs[$index] .= $insertion; } } return implode( '', $paragraphs ); // совмещаем все параграфы вместе и отдаем }
Данная функция позволяет разбивать текст ($content) ваших записей/постов блога на блоки по параграфам и вставляет после определенного номера ($paragraph_id) параграфа код, передаваемый в функцию в переменной $insertion.
Далее нам необходимо вызвать эту функцию при обращении к нашей записи. Для этого нам необходимо добавить строку с добавлением фильтра и функцию:
add_filter( 'the_content', 'prefix_insert_post_ads' ); // Добавляем обработку текста статьи function prefix_insert_post_ads( $content ) { // В функцию передаем текст статьи $ad_code = 'Тут код вашего рекламного блока'; // Указываем код рекламного блока для вставки if ( is_single() && ! is_admin() ) { // вызываем функцию для одиночной записи и не вызываем функцию если мы в администраторской панели return prefix_insert_after_paragraph( $ad_code, 2, $content ); // Если были соблюдены все правила возвращаем обработанный функцией исходный код статьи уже с кодом рекламного блока // передаются параметры: код рекламного блока, номер параграфа, после которого будет блок размещен, контент } return $content; // в противном случае возвращаем просто текст статьи }
Вы можете настроить данный скрипт так как вам угодно, например вы можете скомпоновать все действия в одну функцию (мне кажется так будет удобнее и корректнее, зачем плодить функции?) таким образом:
add_filter( 'the_content', 'prefix_insert_post_ads' ); function prefix_insert_post_ads( $content ) { $ad_code = 'Тут код вашего рекламного блока'; if ( is_single() && ! is_admin() ) { $closing_p = '</p>'; $paragraphs = explode( $closing_p, $content ); foreach ($paragraphs as $index => $paragraph) { if ( trim( $paragraph ) ) { $paragraphs[$index] .= $closing_p; } if ( X == ($index + 1) ) { // X = номер параграфа $paragraphs[$index] .= $ad_code; } } return implode( '', $paragraphs ); // совмещаем все параграфы вместе и отдаем } return $content; }
Если вы хотите добавить несколько рекламных баннеров в текст вашей статьи, то вам необходимо добавить просто еще одно условие, например такое:
add_filter( 'the_content', 'prefix_insert_post_ads' ); function prefix_insert_post_ads( $content ) { $ad_code = 'Тут код вашего рекламного блока'; /* Добавляем второй рекламный блок */ $ad_code = 'Тут код вашего второго рекламного блока'; /* Добавили второй рекламный блок */ if ( is_single() && ! is_admin() ) { $closing_p = '</p>'; $paragraphs = explode( $closing_p, $content ); foreach ($paragraphs as $index => $paragraph) { if ( trim( $paragraph ) ) { $paragraphs[$index] .= $closing_p; } if ( X == ($index + 1) ) { // X = номер параграфа $paragraphs[$index] .= $ad_code; } /* Добавляем второе условие */ if ( X2 == ($index + 1) ) { // X2 = номер второго параграфа $paragraphs[$index] .= $another_ad_code; } /* Добавили второе условие */ } return implode( '', $paragraphs ); // совмещаем все параграфы вместе и отдаем } return $content; }
А если вы хотите добавить рекламный блок в конец записи на сайте на WordPress, то просто добавьте условие:
add_filter( 'the_content', 'prefix_insert_post_ads' ); function prefix_insert_post_ads( $content ) { $ad_code = 'Тут код вашего рекламного блока'; if ( is_single() && ! is_admin() ) { $closing_p = '</p>'; $paragraphs = explode( $closing_p, $content ); $count_p = count($paragraphs); foreach ($paragraphs as $index => $paragraph) { if ( trim( $paragraph ) ) { $paragraphs[$index] .= $closing_p; } if ( $count_p == ($index + 1) ) { $paragraphs[$index] .= $ad_code; } } return implode( '', $paragraphs ); } return $content; }
Таким же образом вы можете добавить блок рекламных объявлений к любым другим тегам, которые вы используете при размете ваших записей на вашем сайте на CMS WordPress, которые у вас встречаются в тексте записи.