wp_insert_post adăugare meta_input

19 feb. 2016, 01:51:58
Vizualizări: 30.9K
Voturi: 13

În documentația funcției wp_insert_post există o notă de modificări la jumătatea paginii care spune următoarele:

Începând cu: WordPress 4.4.0 Un array 'meta_input' poate fi transmis către $postarr pentru a adăuga meta date postării.

Folosesc WordPress 4.4.2. Voi încerca să adaug o postare nouă rulând codul astfel:

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

Postarea este adăugată în baza de date, dar fără metadate. Am găsit această postare pe stack, dar nu pot să îmi dau seama cum să implementez if statement.

Sunt interesat și de modalitatea de a adăuga taxonomii (tax_input).

0
Toate răspunsurile la întrebare 1
1
34

meta_input este doar un array unidimensional de tipul cheie => valoare:

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

tax_input este puțin diferit, având taxonomia drept cheie și un array de valori:

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

Rețineți că pentru ca tax_input să funcționeze, utilizatorul conectat în momentul execuției codului trebuie să aibă capacitatea de a gestiona acea taxonomie, altfel va eșua fără niciun mesaj de eroare.

19 feb. 2016 02:05:09
Comentarii

Scuze pentru răspunsul întârziat, dar mulțumesc pentru explicația clară! A funcționat exact cum ne așteptam

ronnyrr ronnyrr
25 feb. 2016 22:05:43