我正在尝试根据帖子是否已“过期”更新布尔型自定义字段。
发布日期超过30天的帖子将被视为过期。为了检查这一点,我正在使用检索发布后日期get_the_date()
再加上30天。然后我检查这个新日期是否大于或等于当前日期。
然而,用于比较日期的if语句似乎根本没有触发。我查看了今天发布的一篇帖子,布尔值True/False字段为False。我查看了一年前发表的一篇文章,但仍然是假的(预期为真)。
有人能帮我弄清楚发生了什么事吗?如果您对我如何改进这一点有任何建议,请随时提出来。
谨致问候。
add_filter(\'acf/load_field/name=is_listing_expired\', \'acf_listing_expiry\');
function acf_listing_expiry($field) {
$start_date_string = get_field(\'listing_start_date\'); //Get the start date value
$date_format = "Ymd";
$listing_date = DateTime::createFromFormat($date_format, get_the_date(\'Ymd\', null)); //Convert to a DateTime object
$modify_amount = "+" . get_field(\'days_till_expiry\') . " days"; //Get the days till expiry value, minimum value is 2
$new_date = $listing_date->modify($modify_amount); //Get the end date
$current_date = date($date_format);
//Check if the date has reached
if($new_date <= $current_date) {
$field[\'default_value\'] = true;
return $field;
} else {
$field[\'default_value\'] = false;
}
$field[\'default_value\'] = false;
return $field;
}