wordpress header 图片基于日期

wordpress header image based on date

我不擅长 PHP 但我输入了以下代码以根据我设置的日期数组更改 header 图像。

我想知道代码是否看起来不错,是否会按预期运行,或者 iv 是否在我的编码中遗漏了一些东西。

    $hollidayevents = array(
  array(
   'image' => 'wp-content/uploads/1.png',
   'start' => '01-02',
   'end' => '02-02'
  ),
  array(
   'image' => 'wp-content/uploads/2.png',
   'start' => '03-02',
   'end' => '04-02'
  )
);
    
foreach($hollidayevents as $myevent) {
  if(date('d-m') >= $myevent['start'] && date('d-m') <= $myevent['end']) {
    echo "<img src='".$myevent['image']."'>";
  }
  else { echo "<img src='wp-content/uploads/default header image'>";}
}

当您将日期作为字符串与 'd-m' 格式进行比较时,结果基于日期,只有日期相同时才会比较月份。

例如想象一下:'20-10' > '01-11',两者都是您使用的格式 'd-m' 结果是什么? First 比 second 高,所以结果是正确的,即使你会期望相反。那是因为只比较第一个字符。

$hollidayevents = array(
  array(
   'image' => 'wp-content/uploads/1.png',
   'start' => '02-01', // <- m-d format
   'end' => '02-02' // <- m-d format
  ),
  array(
   'image' => 'wp-content/uploads/2.png',
   'start' => '02-03', // <- m-d format
   'end' => '02-04' // <- m-d format
  )
);

$eventFound = false;
foreach($hollidayevents as $myevent) {
  if(date('m-d') >= $myevent['start'] && date('m-d') <= $myevent['end']) {
    echo "<img src='".$myevent['image']."'>";
    $eventFound = true;
    break;
  }
}
if(!$eventFound){
    echo "<img src='wp-content/uploads/default header image'>";
}