it-swarm.com.de

Benutzerdefinierte Feldwerte zu Taxonomiebegriffen

Ich habe ein benutzerdefiniertes Feld "Autor" mit den Namen des Autors. Ich möchte der Site einige neue Funktionen hinzufügen, daher habe ich beschlossen, dass benutzerdefinierte Taxonomien die beste Lösung sind. Ich muss also den Wert des benutzerdefinierten Felds abrufen und an die benutzerdefinierte Taxonomie namens artist übergeben. Natürlich kann ich das manuell machen, aber es sind mehr als 1000 Beiträge, also wäre es die Hölle.

Ich vermute, die Lösung wird mit wp_set_object_terms () verbunden sein. funktion, aber nichts was ich ausprobiert habe hat funktioniert.

Vielen Dank für jede Antwort.

1
adam

Ich habe jetzt keine Zeit, es zu testen, aber so etwas sollte funktionieren:

// Change or add your own arguments as needed 
$args = array(
    'post_type'   => 'post', 
    'numberposts' => -1,
    'offset'      => 0
);
$my_posts = get_posts( $args );
if ( $my_posts ) {
    foreach ( $my_posts as $my_post ) {
        $meta = get_post_meta( $my_post->ID, '_name_of_your_custom_field', true );
        if ( ! empty( $meta ) )
            wp_set_post_terms( $my_post->ID, $meta, '_name_of_your_taxonomy');
    }
}

Sie können es in eine Funktion einbinden, in Ihren functions.php werfen oder ein Plugin daraus machen. Stelle nur sicher, dass du es nur einmal ausführst und nicht bei jedem Seitenaufruf ...

Verwenden Sie die Argumente get_posts () , um zu ändern, welche Posts betroffen sind. Sie können beispielsweise numberposts und offset verwenden, um die Abfrage in einige kleinere zu unterteilen, wenn Ihr Server nicht mehr als 1000 Posts gleichzeitig verarbeiten möchte.

Viel Glück und lassen Sie es mich wissen, wenn Sie weitere Hilfe bei einem der oben genannten Punkte benötigen.

0
Michal Mau