Para que serve o parâmetro “meta_input” em wp_insert_post ()?

8

Estou inserindo um post no wordpress usando a função wp_insert_post () .

Eu quero inserir alguns campos personalizados em cada post e ler a documentação. Embora o parâmetro meta_info tenha sido usado para isso, eu tentei algo assim:

$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 );

A postagem é inserida corretamente e as tags também. Mas não há campos personalizados adicionados. Eu sei que eu poderia usar add_post_meta () para adicioná-los, mas eu ainda gostaria de saber para que o parâmetro meta_input é usado, porque eu fiz uma pesquisa no banco de dados por " testx1 "após inserir o post e não encontrou nenhum resultado.

    
por streel 30.01.2016 / 14:49

1 resposta

5

Esta parte de wp_insert_posts() dá longe:

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

onde vemos como os campos pós meta são atualizados / adicionados com update_post_meta() .

Aqui está a descrição em linha para meta_input :

  

Matriz de pós meta valores codificados por sua chave meta meta. Vazio padrão.

Isso foi adicionado no WordPress 4.4 e aqui está o tíquete relevante # 20451 para obter mais informações.

Observe que usar o sublinhado na frente da meta key _test irá ocultá-lo do campos personalizados do metabox na tela de edição posterior.

    
por birgire 30.01.2016 / 15:02