wake-up-neo.net

Best Practice für das Hinzufügen von Posts in loser Schüttung

Ich habe eine Reihe von benutzerdefinierten Beitragstypen und Taxonomien, die ich mit dem Benutzerdefinierte Beitragstyp-UI -Plugin hinzugefügt habe, und muss mehrere hundert Einträge eingeben (> 500).

Wie kann ich diese Daten in großen Mengen importieren? Z.B. als csv?

2
ServAce85

Es gibt viele Möglichkeiten, aber diese Funktionen sind Ihre Freunde:

  • wp_insert_post - Übergeben Sie einige Argumente und es wird ein Beitrag erstellt. Wenn dies erfolgreich ist, geben Sie die Beitrags-ID zurück
  • wp_set_object_terms - Übergeben Sie ihm eine Beitrags-ID, eine benutzerdefinierte Taxonomie und die Begriffe, die Sie festlegen möchten
  • fopen - zum Öffnen einer CSV-Datei
  • fgetcsv - liest eine einzelne Zeile aus einer CSV ein und gibt sie zur Verarbeitung zurück

Option 1 - Laden einer CSV

Verwenden Sie die Funktionen früher, laden Sie eine csv-Datei hoch, und nehmen Sie dann für jede Zeile die Werte heraus. Verwenden Sie diese Werte, um wp_insert_post und wp_set_object_terms aufzurufen.

z.B. csv:

oranges,juicy and zesty,fruit
apples,juicy but not so zesty,fruit
cucumber,sandwiches go well with it,vegetable

PHP:

if (($handle = fopen("food.csv", "r")) !== FALSE) {
    while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
        $title = $data[0];
        $content = $data[1];
        $food_type = $data[2];
        $post_id = wp_insert_post( array(
            'post_title' => $title,
            'post_content' => $content,
            'post_type' => 'toms_food_post_type',
        ));
        wp_set_object_terms( $post_id, $food_type, 'toms_food_taxonomy' );
    }
    fclose($handle);
}

Ich habe das obige anhand eines Beispiels von php.net gemacht

Möglicherweise möchten Sie, dass eine Logik die erste Zeile überspringt, wenn Sie Überschriften haben, und eine Logik, um Fehler zu überprüfen, z. Wenn Ihr Beitrag nicht erstellt wurde oder das Festlegen der Begriffe fehlgeschlagen ist, usw

Option 2 - WXR

Das Importdateiformat basiert auf RSS. Wenn Sie also ein RSS-Dokument mit all Ihren Inhalten ausgeben und die zusätzlichen Felder hinzufügen können, die WordPress zur Kennzeichnung des Post-Typs und Ihrer benutzerdefinierten Taxonomie verwendet, können Sie den standardmäßigen WordPress-Importer verwenden

Nebenbei bemerkt, die Verwaltung Ihrer Posts in WordPress und die beste Möglichkeit, Ihren Post-Typ zu registrieren, sind völlig andere Fragen. Wenn Sie 3 Fragen haben, erstellen Sie 3 Fragen, anstatt sie alle zusammen zu bündeln. Auf diese Weise brauchen Sie niemanden, der alle drei Antworten hat, um etwas zu bekommen.

Weitere Lektüre

2
Tom J Nowell