Agregar meta_input a wp_insert_post

19 feb 2016, 01:51:58
Vistas: 30.9K
Votos: 13

En la documentación de wp_insert_post hay un registro de cambios en la mitad de la página que dice lo siguiente:

Desde: WordPress 4.4.0 Ahora se puede pasar un array 'meta_input' a $postarr para agregar datos meta a la publicación.

Estoy usando WordPress 4.4.2. Intentaré agregar una nueva publicación ejecutando el código de la siguiente manera:

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 publicación se agrega a la base de datos, pero sin los metadatos. He encontrado esta publicación en Stack, pero no puedo entender cómo implementar la sentencia if.

También estoy interesado en la forma de agregar taxonomías (tax_input).

0
Todas las respuestas a la pregunta 1
1
34

meta_input es simplemente un array unidimensional como key => value:

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

tax_input es ligeramente diferente, con la taxonomía como clave y un array de valores:

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

Ten en cuenta que para que tax_input funcione, el usuario que ha iniciado sesión cuando se ejecuta el código debe tener la capacidad de gestionar esa taxonomía, de lo contrario fallará silenciosamente.

19 feb 2016 02:05:09
Comentarios

Disculpa la respuesta tardía, pero gracias por la explicación clara. Funcionó exactamente como esperaba

ronnyrr ronnyrr
25 feb 2016 22:05:43