Kurze Wiederholung: unsere Import-Tabelle sieht folgendermassen aus:
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:
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.
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.