Довольно частый вопрос, возникающий у дизайнеров, заключается в том, как разместить рекламу — в частности AdSense от Google — в пределах цикла. Указанная реклама должна быть вставлена после каждой первой, второй или третьей записи, без прерывания цикла, т.е. после публикации объявления цикл должен будет продолжить свою работу. Всего существует несколько способов решения данной проблемы. Рассмотрим их.
Первый способ заключается в том, чтобы разбить исходный цикл на два других цикла. В первом из них будет выводиться определенное количество записей (скажем, две), после чего будет произведена вставка рекламного блока. Во втором цикле будет выполняться смещение записей на определенное число, равное количеству записей, вызванных в первом цикле.
Другой способ заключается в том, чтобы определить счетчик, который будет увеличивать количество записей. Как только он достигнет определенной отметки, будет выведено рекламное сообщение. Данный путь представляется более удобным и понятным, по сравнению с первым.
В приведенном ниже примере мы определим вывод рекламного сообщения после первой записи блога.
<?php if (have_posts()) : ?> <?php $postcount = 0; ?> <?php while (have_posts()) : the_post(); ?> <?php $postcount++; ?> <?php if ($postcount < 2) : ?> <!— Post output —> <!— Ad code goes here —> <?php else : ?> <!— Post output —> <?php endif; ?> <?php endwhile; ?> <?php endif; ?>
Здесь мы использовали основный цикл с дополнительным счетчиком. Обратим свое внимание на код, находящийся ниже строки if (have_posts()). Прежде всего, переменной $postcount мы присваиваем начальное значение 0, которое будет увеличиваться на единицу с каждым новым проходом цикла. Если значение $postcount окажется строго меньше двух, то есть будет равно единице, вы получите на экране запись с рекламным объявлением; иначе вы получите вывод стандартной записи блога.
В случае с применением указанного способа к стандартной теме WordPress, основной цикл получил бы следующий вид:
<?php if (have_posts()) : ?> <?php $count = 0; ?> <?php while (have_posts()) : the_post(); ?> <?php $count++; ?> <div <?php post_class() ?> id="post-<?php the_ID(); ?>"> <h2><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></h2> <small><?php the_time('F jS, Y') ?> <!-- by <?php the_author() ?> --></small> <div> <?php the_content('Read the rest of this entry »'); ?> </div> <p><?php the_tags('Tags: ', ', ', '<br />'); ?> Posted in <?php the_category(', ') ?> | <?php edit_post_link('Edit', '', ' | '); ?> <?php comments_popup_ link('No Comments »', '1 Comment »', '% Comments »'); ?></p> <?php if ($count < 2) : ?> <!— Paste ad code here —> <?php else : ?> <!— This would output if there was no ad code —> <?php endif; ?> </div> <?php endwhile; ?> <?php else : ?> <?php endif; ?>
Вставка объявлений между записями — отличная идея, поскольку в таком виде реклама нисколько не напрягает посетителей и не мешает им знакомиться с представленными на сайте материалами. Можно было бы, конечно, поместить рекламу и непосредственно в каждую запись, однако этот путь потребовал бы от вас редактирования файлов шаблона, что довольно долго, нудно и неинтересно.
При размещении рекламных объявлений между записями нужно обязательно учитывать требования, выставляемые рекламной сетью. Широко используемая сеть Adsense Google имеет установленный верхний предел на количество объявлений, размещенных на одной странице. Если вы превысите данный предел, то ваша учетная запись в Adsense может быть заблокирована. Таким образом, в процессе добавления рекламных объявлений нужно обращать пристальное внимание на требования, выставляемые используемой рекламной сетью, чтобы не прийти к плачевным результатам. Также нужно уделять внимание и процессу написания кода, ибо ошибка в одной строке может привести к неожиданным критическим сбоям.
Также при определении вывода рекламных сообщений нужно уделить особое внимание странице 404. Вряд ли посетителю или рекламодателю понравится возможность размещения рекламы на данной странице. В следующем разделе мы подробно рассмотрим должное представление страницы 404.
Здравствуйте. Подскажите, пожалуйста, а как на примере будет выглядеть, например, размещение рекламного блока на главной после 2-ой и 5-ой записи? Заранее спсибо.