wordpress update_post_meta和get_post_meta

时间:2013-10-04 21:41:26

标签: wordpress post wordpress-plugin meta

我目前正在处理worpdress的插件,并遇到了一个奇怪的问题。

我目前有一个前端表单,用户填写并提交。提交后,然后使用以下函数在自定义帖子类型中创建帖子:

$my_post = array(
  'post_title'    => $title,
  'post_type'     => 'product_enquiries',
  'post_content'  => $message,
  'post_status'   => 'private',
  'post_author'   => 1,

);
$post_id = wp_insert_post( $my_post );


update_post_meta($post_id, '_user_email', $_POST["email"]);
update_post_meta($post_id, '_user_name', $_POST["name"]);
update_post_meta($post_id, '_user_phone', $_POST["phone"]);

wp_reset_postdata();

在同一页面上我也有:

$pID = get_the_id(); 
$customemail = get_post_meta($pID, 'enquiry_email', true) ;

出于某种原因,在提交表单然后创建帖子时,它会删除$ customemail的值。我一遍又一遍地经历过它而无法解决它?

我尝试将update_post_meta更改为add_post_meta,这没有任何区别,并且还添加了wp_reset_postdata();这没有任何区别。

如果删除插入新帖子的代码,则$ customemail会保留其值。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

$post_id = wp_insert_post( $my_post );

如果帖子成功插入,则只返回$post_id

您可能过了$post_id = wp_insert_post( $my_post );

撰写同一页面

如果不是'post_title' => $title已发布的帖子,您应先检查是否已退出,然后才会插入帖子