web-dev-qa-db-fra.com

wp_insert_post add meta_input

Dans la documentation de wp_insert_post, un journal des modifications, sur la moitié de la page, indique ce qui suit:

Depuis: WordPress 4.4.0, un tableau 'meta_input' peut maintenant être passé à $ postarr pour ajouter des méta-données postérieures.

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

La publication est ajoutée à la base de données, mais sans métadonnées. J'ai trouvé cet article de pile , mais je ne vois pas comment implémenter le if statement.

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

5
ronnyrr

meta_input est 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 tax comme clé et un tableau de valeurs:

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

Notez que pour que tax_input fonctionne, l'utilisateur actuellement connecté lorsque le code s'exécute doit pouvoir gérer cette taxonomie, faute de quoi il échouera en mode silencieux.

14
Milo