wp_insert_post add meta_input

8

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

Desde: WordPress 4.4.0 Ahora se puede pasar una matriz 'meta_input' a $ postarr para agregar metadatos de 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 metadatos. He encontrado esta publicación de la pila , pero no puedo entender cómo implementarla if statement.

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

ronnyrr
fuente

Respuestas:

19

meta_inputes solo una matriz unidimensional como key => value:

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

tax_input es ligeramente diferente, con impuestos como clave y una serie de valores:

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

Tenga en cuenta que para tax_inputque funcione, el usuario que inició sesión actualmente cuando se ejecuta el código debe tener la capacidad de administrar esa taxonomía, de lo contrario, fallará en silencio.

Milo
fuente
1
Perdón por la respuesta tardía, pero gracias por la explicación clara. Totalmente funcionado como se esperaba
ronnyrr