我目前正在开发 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 保留其值。
有什么想法吗?
$post_id = wp_insert_post( $my_post );
如果帖子成功插入,这只会返回
$post_id
您可能已经把同一页写完了
$post_id = wp_insert_post( $my_post );
你应该首先检查带有
'post_title' => $title
的帖子是否已经存在,如果没有,那么只有你应该插入帖子