wp_insert_post add meta_input

8

Na documentação de, wp_insert_posthá um registro de alterações 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 metadados de post.

Estou usando o Wordpress 4.4.2. Vou tentar adicionar uma nova postagem executando o código da seguinte maneira:

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. 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).

ronnyrr
fonte

Respostas:

18

meta_inputé apenas uma matriz de dimensão única 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_inputfuncionar, o usuário atualmente conectado quando o código é executado deve ter a capacidade de gerenciar essa taxonomia, caso contrário, falhará silenciosamente.

Milo
fonte
1
Desculpe pela resposta tardia, mas obrigado pela explicação clara! Totalmente funcionou como esperado
ronnyrr