Dynamisch Erstellen von Posts über XML-Datei

Ich bin neu in WordPress / PHP und ich versuche, neue Beiträge dynamisch über eine XML-Datei zu erstellen.

Das XML, mit dem ich arbeite, ist dieses.

Die Datei wird im Laufe des Tages in einer FILO-Mode aktualisiert (neue Artikel werden oben hinzugefügt und die untere wird rausgeschoben) und im Moment haben wir jemanden, der alle paar Stunden neue Beiträge erstellt, indem er ein paar Werte in jedes Element zieht.

Ich frage mich also, ob ich diesen process automatisieren kann?

Immer wenn diese Datei aktualisiert wird. WordPress erstellt einen neuen Beitrag nur mit dem neuen Artikel.

Ich bin in der Lage, Werte aus der XML-Datei zu ziehen, aber ich habe Probleme, einen Beitrag dynamisch zu erstellen und auch so einzustellen, dass er nur die neuen Elemente erstellt, also habe ich keine Duplikate.

Ich bin mir auch nicht sicher, ob dies einen großen Teil des Codes beeinflusst, aber ich benutze das ACF- Plugin, also gibt es auch einige benutzerdefinierte Felder in der Post.

Danke im Voraus.

Solutions Collecting From Web of "Dynamisch Erstellen von Posts über XML-Datei"

Ja. Aus Ihrer Beschreibung geht hervor, dass alle Anforderungen zur Automatisierung dieses processes erfüllt sind.

Die Daten werden über XML zur Verfügung gestellt, das mit PHP zu den notwendigen Titel-, Körper- und Meta-Komponenten geparst werden kann. [Suche]

WordPress unterstützt programmatische Post einfügen / löschen / bearbeiten functionen, so dass Teil ziemlich einfach ist. [WP Codex]

Jetzt brauchen Sie nur einen PHP-Entwickler, um den Code in Ihre Spezifikationen zu schreiben.

Ich habe herausgefunden, wie Post dynamisch erstellt werden kann. Ich weiß nicht, ob es optimal ist, aber es macht den Job erledigt.

Ich habe alle notwendigen Informationen in Variablen / Arrays eingegeben und sie in eine for-Schleife eingefügt, die das Einfügen durchführt. Es geht durch die gesamte XML-Datei, aber stoppt und bricht aus der Schleife, wenn es zu einem Beitrag mit dem gleichen Titel kommt (ich weiß, dass dies wahrscheinlich nicht der beste eindeutige Bezeichner ist), auf diese Weise wird es nicht mehrere der erstellen gleicher Beitrag. Sobald es unterbrochen wird, teilt es dem Benutzer mit, wie viele Beiträge erstellt wurden:

$flag = true; for($i=0; $i<24; $i++){ if(!get_page_by_title($b[$i]->title, OBJECT, post)){ //check what category it's in. if(stristr($feedKeywordsArray[$i],"news")){ $category = 3; } elseif(stristr($feedKeywordsArray[$i], "live")){ $category =4; } elseif(stristr($feedKeywordsArray[$i], "insider")){ $category =5; } elseif(stristr($feedKeywordsArray[$i], "local")){ $category =6; } elseif(stristr($feedKeywordsArray[$i], "spotlight")){ $category =7; } else{ $category=1; } $my_post = array( 'post_title' => $b[$i]->title, 'post_content' => $b[$i]->description, 'post_status' => 'publish', 'post_author' => 1, 'post_category' => array($category), 'tags_input' => $feedKeywordsArray[$i] ); // Insert the post into the database. $post_id = wp_insert_post( $my_post ); echo "

Post: '" . $b[$i]->title . "' added

"; if($post_id>0){ update_field('excerpt', (string)($b[$i]->description), $post_id); update_field('vamp-thumbnail', (string)($thumbnail[$i]), $post_id); update_field('vamp-video', str_replace("#autostart=on;", "#autostart=off;hidecompanion=on;autoadv=off;",(string)($a[$i][0])), $post_id); } } else{ $flag = false; echo "

Coming Out of the for loop after creating " . $i . " successful post(s).

"; break; } } if($flag){ echo "Created all post"; } ?>