Um diese Funktion zu verwenden muss man nur die Datei „wp_blog_header.php“ aus dem Hauptverzeichnis von WP includen. Anschließend füllt man einen Array mit den Daten (Titel, Inhalt, Kategorie etc) zu seinem Beitrag und übergibt dieses an die Funktion „wp_insert_post()“, das könnte dann in etwa folgendermaßen aussehen:
include('wp-blog-header.php'); $pdo = new PDO('', 'bla', '*****'); $pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_OBJ); // Alte Daten abfragen $sql = "SELECT titel, text, filename, post_time FROM artikel WHERE kat = 'News' ORDER BY titel"; $res = $pdo->query($sql); foreach ($res as $r) { $postarr = array(); $postarr['post_author'] = 1; // WordPress-interne ID des Autors $postarr['post_title'] = $r->titel; // Beitragstitel $postarr['post_date'] = date('Y-m-d H:i:s', $r->post_time); // Datum / Uhrzeit im Format 'Y-m-d H:i:s' $postarr['post_content'] = $r->text; // Inhalt / Text des Beitrages $postarr['post_status'] = 'publish'; // Status des Beitrages. 'publish' = veröffentlicht $postarr['ping_status'] = 'open'; // Ping Status, 'open' = Beitrag kann gepingt werden $postarr['post_type'] = 'post'; // Typ des Posts, 'post' = normaler Beitrag, 'page' wäre z.B. eine Seite $postarr['post_category'] = array('11'); // Kategorie(n) des Posts, Achtung: muss immer als Array übergeben werden, auch wenn es nur eine Kategorie ist wp_insert_post($postarr); }
Dies war jetzt eine etwas vereinfachte Darstellung dessen, was ich hier selbst genutzt habe, um die Beiträge meiner alten Webseite zu importieren.
Eine Liste aller Parameter, die man wp_insert_post() übergeben kann, findet ihr hier: https://developer.wordpress.org/reference/functions/wp_insert_post/