Я собираю сайт конкурса, построенный на WordPress. Юридически, конкурс должен начаться в полночь. Чтобы не добираться до полуночи, чтобы настроить контент, я хотел бы создать некоторую логику PHP, чтобы показать все после даты начала, а затем отобразить некоторый базовый HTML для всплывающей страницы. Я ВСЕГО программировал newb, но я пытаюсь решить проблему, вот что у меня есть до сих пор:
<?php // The current date $date = date('Y, j, m'); // Static contest start date $contestStart = ('2012, 02, 03'); // If current date is after contest start if ($date > $contestStart) { //contest content? } else { // splash content? } ?>
Я чувствую, что есть более разумные способы сделать это. Мой сайт довольно большой … обертывание всего в выражении if кажется смешным. Может быть, перенаправление на другую страницу в целом на основе даты?
Любая помощь приветствуется.
Вы захотите изменить тему WordPress, чтобы изменения могли быть общими.
<?php $date = time(); $contestStart = strtotime('2012-02-03 00:00:00'); if ($date < $contestStart) { ?> <html> Insert your whole splash page here. </html> <?php exit; } ?> //The normal template code should be below here.
Не забудьте нажать кнопку «Обновить файл» в WordPress, когда вы закончите; и, как говорили другие, убедитесь, что ваше определенное время синхронизируется с любым часовым поясом, на котором находится сервер.
Я предполагаю, что технически логика вашего кода будет работать, но да, есть намного лучшие способы сделать это. Однако, для ваших целей мы пойдем просто.
Вы должны сравнивать с меткой времени, а не с строкой. Попробуй это:
<?php // The current date $date = time(); // Static contest start date $contestStart = strtotime('2012-02-03 00:00:00'); // If current date is after contest start if ($date > $contestStart) { //contest content? } else { // splash content? } ?>
Вы можете поместить компоненты всплеска и содержимого в отдельные .php-файлы и просто включить (), затем в условные выражения.
if ($date > $contestStart) { include("SECRETDIR/contest.php"); } else { include("SECRETDIR/splash.php"); }
вif ($date > $contestStart) { include("SECRETDIR/contest.php"); } else { include("SECRETDIR/splash.php"); }
вif ($date > $contestStart) { include("SECRETDIR/contest.php"); } else { include("SECRETDIR/splash.php"); }
Вы хотите настроить .htaccess, чтобы люди не могли указывать свои браузеры на secretdir и напрямую обращаться к contest.php
// setup the start date (in a nice legible form) using any // of the formats found on the following page: // http://www.php.net/manual/en/datetime.formats.date.php $contestStart = "February 1, 2012"; // check if current time is before the specified date if (time() < strftime($contestStart)){ // Display splash screen } // date has already passed else { // Display page }
Вам не нужно обертывать контент, у вас может быть что-то вроде:
<?php if ( time() < strtotime('2012-02-03 00:00:00') ) { echo "not yet!"; exit; } //code here wont be executed
Будьте осторожны с часовыми поясами! Ваш сервер может находиться в другом часовом поясе, чем ваш контент.