Wordpress:update_post_meta无效

时间:2015-10-04 03:56:20

标签: php mysql wordpress

我正在修改现有的插件,我想在表单中添加一个新字段,然后将该字段与帖子一起提交。帖子被提交给wp_posts。我在谷歌上看过要做到这一点,只需要使用update_post_meta即可。我正在尝试将数据插入到我在PHPMyAdmin中创建的新列中。我将列命名为post_amount。字段名称为amount_field。虽然我是初学者,但我所阅读的“只使用update_post_meta”似乎太简单了,无法满足我所需要的一切。但我可能错了。也许我用错了?

注意 - 这整个尝试是因为我想在wp_posts表中创建一个新列,并为每个帖子添加数据。这甚至是正确的方法吗?我看到单词“meta_key”和“meta_value”,这让我觉得这实际上最终会在wp_postmeta表中添加数据....或者它是预期的目的地?

$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

1 个答案:

答案 0 :(得分:0)

我认为您在更新post_id时犯了一个错误。

update_post_meta($post_id, 'post_amount', $post_amount);

您没有帖子的 ID 或您想要更新的 ID $ post_id 参数在上面的代码中声明为Insert Post。 $post_id = wp_insert_post($question_array);因此,更新帖子查询未找到ID。

您需要 ID 才能更新发布元。它没有找到任何ID,因此它没有更新meta_key。对我的英语抱歉。

尝试使用add_post_meta代替update_post_meta

请参阅Reference