web-dev-qa-db-de.com

wp_insert_post füge meta_input hinzu

In der Dokumentation von wp_insert_post befindet sich auf der Hälfte der Seite ein Änderungsprotokoll, in dem Folgendes steht:

Seit: WordPress 4.4.0 Ein 'meta_input'-Array kann jetzt an $ postarr übergeben werden, um Post-Metadaten hinzuzufügen.

Ich benutze Wordpress 4.4.2. Ich werde versuchen, einen neuen Beitrag hinzuzufügen, indem ich den Code wie folgt ausführe:

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

Der Beitrag wird der Datenbank hinzugefügt, jedoch ohne Metadaten. Ich habe diesen Stapelpost gefunden, kann aber nicht herausfinden, wie der if statement implementiert wird.

Ich bin auch an der Möglichkeit interessiert, Taxonomien (tax_input) hinzuzufügen.

5
ronnyrr

meta_input ist nur ein eindimensionales Array als key => value:

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

tax_input ist etwas anders, mit tax als Schlüssel und einer Reihe von Werten:

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

Damit tax_input funktioniert, muss der aktuell angemeldete Benutzer, wenn der Code ausgeführt wird, in der Lage sein, diese Taxonomie zu verwalten. Andernfalls schlägt der Vorgang im Hintergrund fehl.

14
Milo