我目前正在处理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会保留其值。
有什么想法吗?
答案 0 :(得分:0)
$post_id = wp_insert_post( $my_post );
如果帖子成功插入,则只返回$post_id
您可能过了$post_id = wp_insert_post( $my_post );
如果不是'post_title' => $title
已发布的帖子,您应先检查是否已退出,然后才会插入帖子