我正在修改一个现有的插件,我想给表单添加一个新的字段,然后将该字段与帖子一起提交。该帖子将提交给wp_posts。我在Google上读到,要做到这一点,只需要使用update_post_meta
。我正在尝试将数据插入到我在PHPMyAdmin中创建的新列中。我把这个专栏命名为post_amount
。字段名为amount_field
。虽然我是一个初学者,但我读过的一些关于“只使用update_post_meta
”的东西似乎太简单了,不足以满足我的所有需求。但我可能错了。也许我用错了?
注意-这整个尝试是因为我想在wp_posts表中创建一个新列,并在每个posts中添加数据。这是正确的方法吗?我看到了“meta_key”和“meta_value”这两个词,这让我认为这实际上会导致在wp_postreta表中添加数据……或者这是预期的目的地?
$question_array = array(
'post_title' => $fields['title'],
'post_author' => $user_id,
'post_content' => apply_filters('ap_form_contents_filter', $fields['description']),
'post_type' => 'question',
'post_status' => $status,
'comment_status' => 'open',
);
if(isset($fields['parent_id']))
$question_array['post_parent'] = (int)$fields['parent_id'];
$question_array = apply_filters('ap_pre_insert_question', $question_array );
$post_id = wp_insert_post($question_array);
$post_amount = $fields['amount_field']; //My code
update_post_meta($post_id, 'post_amount', $post_amount); //My code
最佳答案
我认为你更新post_id
时出错了。
在update_post_meta($post_id, 'post_amount', $post_amount);
您没有帖子的ID或要更新的ID。
$post_id参数声明为在上述代码中插入post。$post_id = wp_insert_post($question_array);
因此,update post查询未找到ID。
你需要ID来更新post meta。它找不到任何id,因此没有更新meta_key
。对不起我的英语。
尝试使用add_post_meta
而不是update_post_meta
。
查看Reference
关于php - WordPress:update_post_meta无法正常工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32929880/