wp_insert_post tambahkan meta_input

8

Dalam dokumentasi dari wp_insert_postada changelog pada setengah dari halaman yang mengatakan berikut ini:

Sejak: WordPress 4.4.0 Array 'meta_input' sekarang dapat diteruskan ke $ postarr untuk menambahkan data meta pos.

Saya menggunakan Wordpress 4.4.2. Saya akan mencoba menambahkan posting baru dengan menjalankan kode sebagai berikut:

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

Posting ditambahkan ke database, tetapi tanpa meta data. Saya telah menemukan tumpukan posting ini , tetapi saya tidak tahu bagaimana cara mengimplementasikannya if statement.

Saya juga tertarik dengan cara menambahkan taksonomi (tax_input).

ronnyrr
sumber

Jawaban:

19

meta_inputhanya array satu dimensi sebagai key => value:

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

tax_input sedikit berbeda, dengan pajak sebagai kunci dan berbagai nilai:

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

Perhatikan bahwa tax_inputagar berfungsi, pengguna yang saat ini masuk ketika kode berjalan harus memiliki kemampuan untuk mengelola taksonomi itu, jika tidak maka akan gagal secara diam-diam.

Milo
sumber
1
Maaf atas respons yang terlambat, tetapi terima kasih atas penjelasan yang jelas! Benar-benar berhasil seperti yang diharapkan
ronnyrr