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

ronnyrr
la source

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.

Milo
la source
1
Désolé pour la réponse tardive, mais merci pour l'explication claire! Entièrement travaillé comme prévu
ronnyrr