Как сделать чередование рекламы гугл адсенс и яндекс рся?
т.е. в шаблоне single.php нужно сделать, чтобы рекламные блоки адсенс и рся показывались 50/50, по очереди, если показывается адсенс, тогда не должен показываться рся, и также рся.
вот такой вариант, с файлом-счётчиком:
function adv_router(){
$counter_name = bloginfo('template_directory') . "adv_counter.txt";
if(!$f = fopen($counter_name, "w")){
fwrite($f,"0");
fclose($f);
exit();
}
$f = fopen($counter_name,"r");
$counterVal = fread($f, filesize($counter_name));
$route = ++$counterVal % 2;
$f = fopen($counter_name, "w");
fwrite($f, $counterVal);
fclose($f);
if($route){
echo // гугл;
}else{
echo // яндекс;
}
}
UPD:
вот такой вариант, с добавлением счётчика в таблицу options:
function adv_router(){
global $wpdb;
$counterVal = 0;
$prefix = $wpdb->prefix;
// или $prefix = $wpdb->base_prefix; // читает префикс из wp_config.php
if(!get_option('adv_counter_01')){
$wpdb->insert(
$prefix . 'options',
array( 'option_name' => 'adv_counter_01', 'option_value' => '0'),
array( '%s', '%d' )
)
}else{
$counterVal = ++(get_option('adv_counter_01'));
update_option( 'adv_counter_01', $counterVal));
}
if($counterVal % 2){
echo // гугл;
}else{
echo // яндекс;
}
}
Генерируем рандомное число 0 или 1. Далее проверяем. Если число 1 - показываем рекламу гугл, если 0 - показываем рекламу яндекс.
<?php
$r = mt_rand(0,1);
if($r) {
// показываем рекламу гугл
} else {
// показываем рекламу яндекс
}
?>
Надо использовать некое хранилище счетчика - файл или базу данных. Самым быстрым способом будет использование опции WordPress.
$advert = get_option( 'advert', 0 ); // значение по умолчанию - 0, если опция не существует в базе.
if ( 0 === ( $advert % 2 ) ) {
// остаток от деления на 2 = 0, показываем Google
} else {
// остаток от деления на 2 = 1, показываем Yandex
}
$advert++; // увеличиваем счетчик
update_option( 'advert', $advert ); // сохраняем в базе
Сборка персонального компьютера от Artline: умный выбор для современных пользователей