wordpress update_post_meta 和 get_post_meta

问题描述 投票:0回答:1

我目前正在开发 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 保留其值。

有什么想法吗?

wordpress post
1个回答
0
投票

$post_id = wp_insert_post( $my_post );

如果帖子成功插入,这只会返回

$post_id

您可能已经把同一页写完了

$post_id = wp_insert_post( $my_post );

你应该首先检查带有

'post_title'    => $title
的帖子是否已经存在,如果没有,那么只有你应该插入帖子

© www.soinside.com 2019 - 2024. All rights reserved.