wp_insert_post add meta_input

8

In der Dokumentation von wp_insert_postbefindet sich auf der Hälfte der Seite ein Änderungsprotokoll, das Folgendes enthält:

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 Stapelbeitrag gefunden , kann aber nicht herausfinden, wie der implementiert werden soll if statement.

Ich interessiere mich auch für das Hinzufügen von Taxonomien (tax_input).

ronnyrr
quelle

Antworten:

18

meta_inputist nur ein eindimensionales Array als key => value:

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

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

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

Beachten Sie, dass tax_inputder Benutzer, der zum Zeitpunkt der Ausführung des Codes angemeldet ist, über die Fähigkeit verfügen muss, diese Taxonomie zu verwalten, damit sie funktioniert. Andernfalls schlägt sie stillschweigend fehl.

Milo
quelle
1
Entschuldigung für die späte Antwort, aber danke für die klare Erklärung! Total wie erwartet
ausgearbeitet