Здравствуйте, сегодня хотелось бы поделиться с вами кусочком кода для отображения контента только в определенное время на wordpress сайтах.
Скачать исходники для статьи можно ниже
Сам код следующий:
add_shortcode( 'displaythis', 'displayThis' );
function displayThis($atts, $content=null){
$html = null;
$when = $atts['when'];
if(isset($atts['format']))
$format = $atts['format'];
else
$format = 'd-m-Y';
$date = date($format);
if( $when == $date ) {
$html = $content;
}
return $html;
}
Вышеуказанный код нужно вставить в файл functions.php вашей темы сайта, то есть заходим в панель управления wordpress, в левом меню выбираем пункт “Внешний вид” и его подпункт “Редактор”, справа в списке шаблонов выбираем файл – functions.php и в самый низ его кода вставляем данный код.
Теперь переходим в нужную нам страничку или запись (пост) и вставляем в нее следующий шорткод в нужном нам месте, например так:
[displaythis when="26" format="d"]Сегодня 26 января 2014 года![/displaythis]
В итоге надпись “Сегодня 26 января 2014 года!” будет выводиться только 26.01.14 – то есть только один день.
Для того чтобы можно было выводить контент по часам и минутам, а возможно даже секундам – нужно поменять строчку:
$format = 'd-m-Y';
на следующую:
$format = 'd-m-Y-h-i-s';
, где:
d – дни
m – месяцы
Y – года
h – часы
i – минуты
s – секунды.
То есть теперь мы сможем задавать не только – дни, месяцы или года, когда нужно выводить контент, но и часы, минуты и даже секунды.
Но теперь нам нужно выяснить – Какое время будет учитываться при работе данного скрипта?
Ответ: время сервера вашего сайта.
А как же его определить (текущее время сервера сайта)?
Для этого можно воспользоваться следующим кодом:
<?php
echo date("d-m-Y h:i:s");
?>
Можете вставить данный код, например в футер (подвал) сайта – для сайтов на wordpress – заходим в панель управления – в левом меню выбираем пункт “Внешний вид” и его подпункт “Редактор”, справа в списке шаблонов выбираем файл footer.php и перед закрывающим тегом body вставим наш код:
...
<?php wp_footer(); ?>
<?php
echo date("d-m-Y h:i:s");
?>
</body>
</html>
Теперь вы будете знать на сколько часов разница между вашим местным временем и временем сервера и сможете выводить контент в нужное время с точностью до секунд!


Плагин позволяющий скрывать часть контента в зависимости от времени “wordpress.org/plugins/shortcodes-to-show-or-hide-content/”