问题描述

我使用函数 wp_insert_post()将一些帖子插入 wordpress 。

我想在每个帖子上插入一些自定义字段,并阅读文档,虽然使用了 meta_info 参数,但我尝试过这样的操作:

$data = array(
        'post_author' => 1,
        'post_status' => 'publish',
        'post_title' => $post->getTitle(),
        'post_content' => $post->getContent(),
        'post_category' => $post->getCategory(),
        'tags_input' => $post->getTags(),
        'meta_input' => array( "_test" => "testx1" )
);

$postID = wp_insert_post( $data );

该帖子被正确插入和标记。但是没有添加自定义字段。我知道我可以使用 add_post_meta() 来添加它们,但是我仍然想知道使用 meta_input 参数是什么,因为我在插入该帖子后对数据库进行了”testx1″ 的搜索,找不到任何结果。

最佳解决方案

wp_insert_posts()的这一部分给了它:

  if ( ! empty( $postarr['meta_input'] ) ) {
        foreach ( $postarr['meta_input'] as $field => $value ) {
            update_post_meta( $post_ID, $field, $value );
        }
  } 

在那里我们看到后期元字段如何更新/添加 update_post_meta()

以下是 meta_input 的内联描述:

Array of post meta values keyed by their post meta key. Default empty.

这是添加到 WordPress 4.4 和这里的相关票 #20451 了解更多信息。

请注意,使用元键_test 前面的下划线将在后编辑屏幕中将其隐藏自定义字段 metabox 。

参考文献

注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。