我试图在发布或保存帖子时添加event\\u month的自定义字段。我正在使用save\\u post操作,获取包含日期的自定义字段的内容,并尝试将其存储在单独的自定义字段中,只包含月份。当保存已经创建的帖子时,这种方法非常有效。我已经在下面显示了我的代码。
add_action(\'save_post\', \'update_event_date\');
function update_event_date($post_id){
$post_type = get_post_type($post_id);
$event_datee = get_post_meta($post_id, \'_EventStartDate\', true);
if ($post_type == \'tribe_events\'){
$month = date("m",strtotime($event_datee));
update_post_meta($post_id, \'event_month\', $month);
}
}
创建新帖子时会出现问题。我想这是因为行动在
_EventStartDate
meta已创建,因此无法从此中提取月份。
在保存/更新帖子时,钩子可以正确地按预期触发,但在创建新帖子时,钩子不能正确地从元中获取月份。
如果有人能给我一些指导,我将不胜感激。
SO网友:Johansson
你可以加入post_updated
操作,如果您想在发布后访问帖子的数据。此挂钩传递帖子的ID、淹没的帖子对象和更新的帖子对象。
add_action( \'post_updated\', \'update_event_date\', 10, 3 );
function update_event_date( $post_id, $post_after, $post_before ){
$post_type = get_post_type( $post_id );
$event_datee = get_post_meta( $post_id, \'_EventStartDate\', true );
if ( $post_type == \'tribe_events\' ) {
$month = date( "m",strtotime( $event_datee ) );
update_post_meta( $post_id, \'event_month\', $month );
}
}