我正在组建一个基于Wordpress的竞赛网站。从法律上讲,比赛必须从午夜开始。为了避免在午夜设置内容,我想构建一些PHP逻辑以在开始日期之后显示所有内容,然后在启动页面之前显示一些基本HTML。我是一个完全编程的新手,但我正在努力解决问题,这是我到目前为止所做的:
<?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语句包装整个东西看起来很荒谬。也许根据日期重定向到一个不同的页面?
感谢任何帮助。
答案 0 :(得分:5)
您需要修改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上的“更新文件”按钮;和其他人说的一样,确保你指定的时间与服务器所在的时区同步。
答案 1 :(得分:2)
我认为从技术上讲,你的代码的逻辑是可行的但是,有更好的方法可以做到这一点。但是,为了您的目的,我们会很简单。
您应该与时间戳进行比较,而不是字符串。试试这个:
<?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?
}
?>
答案 2 :(得分:1)
您可以将splash和content组件放在单独的.php文件中,然后在条件句中包含()。
if ($date > $contestStart) {
include("SECRETDIR/contest.php");
}
else {
include("SECRETDIR/splash.php");
}
您需要设置.htaccess,以便人们无法将浏览器指向secrettdir并直接访问contest.php
答案 3 :(得分:1)
您不必包含内容,您可以使用以下内容:
<?php
if ( time() < strtotime('2012-02-03 00:00:00') ) {
echo "not yet!";
exit;
}
//code here wont be executed
小心时区!您的服务器可能与您的内容位于不同的时区。
答案 4 :(得分:0)
// 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
}