wp_insert_post aggiungi meta_input


8

Nella documentazione di wp_insert_postc'è un log delle modifiche in metà pagina che dice quanto segue:

Da: WordPress 4.4.0 È ora possibile passare un array 'meta_input' a $ postarr per aggiungere i metadati post.

Sto usando Wordpress 4.4.2. Proverò ad aggiungere un nuovo post eseguendo il codice come segue:

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

Il post viene aggiunto al database, ma senza metadati. Ho trovato questo post dello stack , ma non riesco a capire come implementare if statement.

Sono anche interessato al modo di aggiungere tassonomie (tax_input).

Risposte:


19

meta_inputè solo un array a dimensione singola come key => value:

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

tax_input è leggermente diverso, con la tassa come chiave e una matrice di valori:

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

Si noti che per tax_inputfunzionare, l'utente attualmente connesso quando viene eseguito il codice deve avere la capacità di gestire quella tassonomia, altrimenti fallirà silenziosamente.


1
Ci scusiamo per la risposta tardiva, ma grazie per la chiara spiegazione! Completamente risolto come previsto
ronnyrr,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.