Размещение рекламы на WordPress без плагинов
Ранее мы рассмотрели возможности плагина «NewAdman», благодаря которому, можно легко разместить рекламный код в постах. Теперь же разберём каким образом можно исключить установку плагинов, используя только код на WordPress.
Некоторые варианты размещения, ничем не уступают функциональности плагинов WP, при этом нагрузка на сайт снижается, а нам того и надо! Перед тем, как начать описывать действия, подготовьте рекламный код («Рекламной сети Яндекса» или «GoogleAdsense»), так как они понадобятся входе работы с кодом.
Содержание статьи:
1. Размещаем рекламу на главной и страницах архивов
Обычно, главная страница и архивы категорий выпадают из вида вебмастера, а ведь это, достаточно, популярная область просмотра пользователями. Поэтому стоит задуматься о размещении рекламных позиций и в этих местах.
Во первых, создадим текстовый файл с помощью стандартного блокнота. Переименуем его в «reklama.php» — изменяя и расширение файла (с TXT на PHP). Подключившись к сайту по средствам FTP доступа, скопируйте созданный файл в директорию вашей активной темы WordPress (по пути: /wp-content/themes/название_вашей_темы/).
Далее перейдём в админ-панель WP в раздел «Внешний вид» — «Редактор». Где уже доступен загруженный «reklama.php», в него вставьте, заранее скопированный, рекламный код и сохраните изменения.
Следующим шагом, откройте на редактирование основной шаблон темы «index.php». Найдите в нём строку:
<?php while(have_posts()) : the_post(); ?>
Замените её на нижеуказанный код:
<?php while(have_posts()) : the_post(); $postcounter++; ?>
Тем самым, мы монтируем счётчик к выводу постов. Далее, сразу после этой строчки, вставляем:
<?php if($postcounter% 2 != 0) { include(TEMPLATEPATH . '/reklama.php'); } ?>
В итоге должно получиться:
<?php while(have_posts()) : the_post(); $postcounter++; ?>
<?php if($postcounter% 2 != 0) { include(TEMPLATEPATH . '/reklama.php'); } ?>
При таких изменениях, рекламные блоки будут выводиться над первым, третьем, пятым постами (т.е. через один по количеству постов на главной странице). Немного надо пояснить значение счетчика анонсов на главной «$postcounter», указанное значение «++» в начале показывает добавление одного поста после публикации. А код «if ()» показывает, после какого анонса будет отображаться реклама.
Значение «% 2 != 0», указывает на то, что рекламные блоки будут появляться, если остаток от арифметического деления порядка этого поста на 2 не равен 0. Например, второй пост: 2/2=1 (остаток равен 0), значит, блок не выводится, третий: 3/2=1 (остаток 1), выводится и так далее. Число 2 можно заменить на любую другую цифру; таким образом можно индивидуально формировать карту вывода рекламных позиций.
Рассмотрим и другой вариант, при котором рекламный блок выводится после анонса поста, а не перед, как в первом случае. В файле «index.php»: находим строку окончания вывода цикла:
<?php endwhile; ?>
И вставляем перед ней::
<?php if($postcounter% 2 != 0) { include(TEMPLATEPATH . '/reklama.php'); } ?>
Счетчик «$postcounter++» при этом остаётся в начале цикла. То есть, во втором случае рекламная позиция смещается относительно анонсов, и будет размещаться под первым, третьим и пятым.
Если, скажем, у Вас размещение анонсов по сетке «Три в ряд»:, то можно попробовать использовать такой вывод позиций:
<?php if ($postcounter % 6 == 3) { include (TEMPLATEPATH . '/reklama.php'); } ?><?php endwhile; ?>
При таком применении, реклама отобразиться после первого ряда и через два последующих. Если на главной выводится 18 постов, то количество рекламных блоков составит — 3 позиции.
Все вышеописанные действия применяются и к файлу «archive.php» и «category.php». Если цикл вывода анонсов совпадает с главной страницей, то и изменений в коде не понадобится – вставляем заготовленные строчки и сохраняем результат!
2. Размещение в любом месте темы
Чтобы созданный файл «reklama.php» послужил ещё на благо сайта, можно с помощью PHP строчки вывести рекламный блок в любом месте темы WordPress. Скопируйте код и разместите в шаблоне одиночной записи (single.php) или базового шаблона страницы «page.php»:
<?php include (TEMPLATEPATH . '/reklama.php'); ?>
Предпочтительным будут места вверху основного контента и под ним, а также Вы сможете вставить вывод в виджет sidebar(в том случае, если у Вас отрабатывается код PHPв этой области).
3. Размещаем рекламу внутри поста
После долгих изысканий, нашёл универсальный код функции для WordPress, которая выводит указанный рекламный код внутри поста. Универсальность состоит в том, что функция определяет, не только количество знаков HTML контента после которого следует отобразить блок, но и минимальное количество знаков для отображения рекламы.
В итоге рекламный код будет отображён только при соблюдении двух условий: достаточный объём контента, целевое количество знаков для вывода. Скопируйте код в файл «functions.php» вашей активной темы в самый конец перед закрывающим «?>»:
function inject_ad_text_after_n_chars($content) {
// only do this if post is longer than 1000 characters
$enable_length = 1000;
// insert after the first </p> after 500 characters
$after_character = 400;
if (is_single() && strlen($content) > $enable_length) {
$before_content = substr($content, 0, $after_character);
$after_content = substr($content, $after_character);
$after_content = explode('</p>', $after_content);
$text = '
//Здесь ваш код рекламы//
';
array_splice($after_content, 1, 0, $text);
$after_content = implode('</p>', $after_content);
return $before_content . $after_content;
}
else {
return $content;
}
}
add_filter('the_content', 'inject_ad_text_after_n_chars');
Перед редактированием, стоит сделать резервную копию functions.php, во избежание возможных проблем некорректной работы. В коде можно изменить две строчки в начале:
$enable_length = 1000;
Отвечает за соответствие общему количеству знаков в контенте поста (вместо 1000 укажите своё, отвечающее формату сайта).
$after_character = 400;
Отвечает за количество знаков для вывода рекламы. Указанное значение может округляться до ближайшего абзаца в тексте (очень удобно, так как при этом контент не разрывается). Лучше, если число будет соответствовать количеству ограничения первого параметра функции (400 также меняем на своё).
Ну и меняем строчку «//Здесь ваш код рекламы//» на заранее скопированный рекламный код, после чего сохраняем изменения в файле. Проверить результат, достаточно просто, откройте публикацию, отвечающую указанным параметрам в функции, и просмотрите содержимое.
Вместо послесловия
Вот и всё, Этих трёх вариантов размещения рекламы достаточно для большинства блогов на WordPress. Вы сможете поэкспериментировать с кодом и его позициями в шаблоне, так как кликабельные места у каждого сайта свои, и не стоит равняться на другие веб проекты!
Успехов в начинаниях и доходных проектов!
Спасибо за детальный урок. По личному опыту хочу сказать что плагин хоть и может загрузить хостинг, но зато прилично может разгрузить мозг вебмастера :). Мне как-то проще работать с плагинами, да и дополнительные данные имеются, статистика и т.д.
Пробовал вашу методику, но ничего не получилось. В моем шаблоне указанные коды не найдены. Как быть?
Здравствуйте! Пожалуйста, опишите свою проблему на электронный адрес — admin@w-d-x.ru
Подробнее остановитесь на проблемах с исходным кодом, указав интересующие способы размещения рекламы.
Здравствуйте!
Столкнулся с этим вопросом и нашел простое решение.
Создаем пустой плагин functions.php, в функциях редактировать- вставляем код-подходит ко всем темам.
Как создать такой плагин описано в инете.
С уважением Виктор.
При заходе на сайт открывается вводящая в заблуждение реклама, что ни есть хорошо.
Здравствуйте!
Спасибо! Обязательно проверим, по возможности устраним.
Здравствуйте.
1-й пункт почему — то не сработал, а остальные, что называется на ура, может мастер подскажет причину.