wp_insert_post adiciona meta_input

3

Na documentação de wp_insert_post , há um registro na metade da página que diz o seguinte :

  

Desde: WordPress 4.4.0 Um array 'meta_input' agora pode ser passado para   $ postarr para adicionar meta dados.

Estou usando o Wordpress 4.4.2. Tentarei adicionar uma nova postagem executando o código da seguinte forma:

function handle_post($post) 
{
    wp_insert_post( array(
        'post_title'    => $post['title'],
        'post_type'     => 'werknemers',
        'meta_input'    => array(
            array(
                'key'   => 'name',
                'value' => $post['name']
            ),
            array(
                'key'   => 'city',
                'value' => $post['city']
            )
        )
    ) ); 
}

A postagem é adicionada ao banco de dados, mas sem metadados. Eu encontrei este post de pilha , mas não consigo descobrir como implementar o if statement .

Também estou interessado na maneira de adicionar taxonomias (tax_input).

    
por ronnyrr 19.02.2016 / 00:51

1 resposta

13

meta_input é apenas uma matriz unidimensional como key => value :

'meta_input' => array(
    'name' => $post['name'],
    'city' => $post['city']
)

tax_input é um pouco diferente, com imposto como chave e uma matriz de valores:

'tax_input' => array( 
    'taxonomy_name' => array( 
        'term', 
        'term2', 
        'term3' 
    ) 
)

Observe que, para tax_input funcionar, o usuário atualmente logado quando o código é executado precisa ter a capacidade de gerenciar essa taxonomia, caso contrário, ele falhará silenciosamente.

    
por Milo 19.02.2016 / 01:05