wp_insert_post add meta_input


8

Dans la documentation de wp_insert_postil y a un changelog sur la moitié de la page qui dit ce qui suit:

Depuis: WordPress 4.4.0 Un tableau 'meta_input' peut maintenant être passé à $ postarr pour ajouter des métadonnées post.

J'utilise Wordpress 4.4.2. Je vais essayer d'ajouter un nouveau message en exécutant le code comme suit:

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']
            )
        )
    ) ); 
}

Le message est ajouté à la base de données, mais sans métadonnées. J'ai trouvé ce post de pile , mais je ne sais pas comment implémenter le if statement.

Je suis également intéressé par la façon d'ajouter des taxonomies (tax_input).

Réponses:


19

meta_inputest juste un tableau à une dimension comme key => value:

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

tax_input est légèrement différent, avec taxe comme clé et un tableau de valeurs:

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

Notez que pour tax_inputfonctionner, l'utilisateur actuellement connecté lors de l'exécution du code doit avoir la capacité de gérer cette taxonomie, sinon il échouera en silence.


1
Désolé pour la réponse tardive, mais merci pour l'explication claire! Entièrement travaillé comme prévu
ronnyrr
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.