Drupal nach WordPress: Beiträge mit Kategorien erzeugen

Kurze Wiederholung: unsere Import-Tabelle sieht folgendermassen aus:

ersterwert_letzterwert
ersterwert_letzterwert

Dabei sind die Ersterwert/Letzterwert Felder die term_ids aus WordPress. Ich vegebe mal noch hübschere Feldnamen und hole zum Testen nur eine Handvoll Datensätze:

neue_feldnamen
neue_feldnamen

 

Wir bauen jetzt unser Import-Plugin entsprechend um. Der Select bleibt gleich, der Tabellenname liegt auf der Variablen $akt_import:

global $wpdb;
    $allezeilen = $wpdb->get_results( "SELECT * from ".$akt_import."");

Innerhalb der Foreach-Schleife konstruieren wir uns jetzt unsere neuen Beiträge:

foreach ($allezeilen as $zeile){
        
        $akt_titel = $zeile->title;
        $akt_body_value = $zeile->body_value;
        $akt_term_id1 = $zeile->term_id1;
        $akt_term_id2 = $zeile->term_id2;

        // Beitragsobjekt anlegen
        $my_post = array();
        $my_post['post_title']    = $akt_titel;
        $my_post['post_content']  = $akt_body_value;
        $my_post['post_status']   = 'publish';
        $my_post['post_author']   = 1;
        $my_post['post_category'] = array( $akt_term_id1,$akt_term_id2 );

        // Beitrag in Datenbank einfügen
        $neue_id = wp_insert_post( $my_post );
        echo "Beitrag mit neuer ID: ".$neue_id." angelegt <br><br>";
        
    } //end foreach

Erst wird das Array für das neue Beitragsobjekt mit den Datenfeldern aus der aktuellen Zeile gefüllt, und dann mit wp_insert_post der neue Beitrag angelegt. Das wars schon! Alle Rezepte mitsamt Kategorien werden erzeugt.

import_komplett
import_komplett

Natürlich muss man an der Logik noch ein bisschen rumschrauben, wenn man mehr als zwei Kategorien pro Rezept importieren will, aber prinzipiell funktioniert die Sache so, das geht eigentlich ganz unkompliziert, wenn man die Export-Tabelle einmal konstruiert hat.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.