2017-08-24 71 views
0

我试图在帖子发布或保存时添加event_month的自定义字段。我正在使用save_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元之前触发,因此无法从中获取该月份。

当保存/更新帖子时,钩子正确触发并按照预期操作,但是在创建新帖子时无法正确获取元的月份。

我真的很感激,如果有人可以提供一些指导。

回答

1

要访问元后与你一起过去,你可以做这样的事情:

$event_datee = get_post_meta($post_id, '_EventStartDate', true); 
foreach($_POST['meta'] as $meta){ 
    if($meta['key'] == '_EventStartDate'){ 
      $event_datee = $meta['value']; 
     } 
}; 
+0

感谢。当要添加一个新帖子时,我收到一个错误'为foreach()提供了无效参数',无论如何我要去添加一个新事件时,$ event_datee变量是空的.. –

+0

嗯,应该工作,如果你有任何该帖子的元字段。尝试'var_dump($ _ POST);'看看你的元? – mokiSRB

+0

也尝试改变你的钩子的优先级,如'add_action('save_post','update_event_date',99);' – mokiSRB

相关问题