問題描述

我使用函式 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 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。