我不知道为什么会发生这种情况。
我有一个为自定义帖子类型设置的“event\\u end\\u date”自定义元数据库。如果我将此字段留空,它总是显示帖子本身的发布日期?
我使用Custom-Metaboxes-and-Fields-for-WordPress 像这样的库…
$meta_boxes[] = array(
\'id\' => \'event_info_optional\',
\'title\' => \'Optional\',
\'pages\' => array( \'wr_event\'),
\'context\' => \'normal\',
\'show_names\' => true,
\'priority\' => \'core\',
\'fields\' => array(
array(
\'name\' => \'End time of event\',
\'id\' => $prefix . \'event_end_time\',
\'type\' => \'text_time\',
)
),
);
我这样保存值…$wr_event_end_date = isset($_POST[\'wr_event_end_date\']) ? $_POST[\'wr_event_end_date\'] : \'\';
$event_end_date = new DateTime($wr_event_end_date);
update_post_meta($post->ID, "event_end_date", $event_end_date->getTimestamp());
我像这样查询值…function get_event_end_date($post) {
$date = get_post_meta($post->ID, \'event_end_date\');
if ( !empty( $date[0] ) ) {
//only if a value is saved I return the value
return $date[0];
}
}
这适用于所有其他自定义字段。就我的事件结束日期而言,它不是。如果我在后端将字段留空并保存帖子,帖子本身总是将帖子的发布日期显示为事件结束日期。为什么会这样get_event_end_date()
如果我将帖子留空,函数将返回帖子的发布日期。如果我为字段设置了一个值,它就可以正常工作,但如果我将其保留为空,我不希望函数返回任何内容。
UPDATE
// End-event-date
/*$wr_event_end_date = isset($_POST[\'wr_event_end_date\']) ? $_POST[\'wr_event_end_date\'] : \'\';
$event_end_date = new DateTime($wr_event_end_date);
update_post_meta($post->ID, "event_end_date", $event_end_date->getTimestamp());*/
if ( isset($_POST[\'wr_event_end_date\']) ) {
die(\'this is getting called even though the field is submitted blank\');
$event_end_date = new DateTime($_POST[\'wr_event_end_date\']);
update_post_meta($post->ID, "event_end_date", $event_end_date->getTimestamp());
} else {
update_post_meta($post->ID, "event_end_date", "");
}