Organisieren von WP-Seiten basierend auf der alten Website-database

Ich verschiebe vorhandene Daten mit Gemälden von einem alten Host, der WordPress nicht verwendet hat, zu einem neuen Host, der das tut.

Bei der alten Site wurden die Daten in einer database gespeichert, so dass jedes Bild eine eigene Seite mit Informationen (Künstler, Name, Jahr, Stil usw.) und dazugehörige Medien hatte und die Seiten dann nach den verschiedenen Informationen durchsucht werden konnten ( ähnliches Jahr, Künstler, usw.)

Gibt es bei WordPress eine Möglichkeit, mit meiner alten database automatisch Seiten / Beiträge zu erzeugen, die auf diese Weise sortiert werden können?

Solutions Collecting From Web of "Organisieren von WP-Seiten basierend auf der alten Website-database"

Bevor ich mich mit dem Import beschäftige , würde ich mich sowohl mit dem Standardposttyp als auch mit post_meta sowie mit benutzerdefinierten Beitragstypen und Taxonomien vertraut machen. Wenn Ihr Endziel von Letzterem profitieren würde, ersparen Sie sich einige Kopfschmerzen während der Importvorbereitung.


Wenn Sie lieber direkt mit der database arbeiten, ist natürlich auch ein Dump / Convert / Import möglich. Der untenstehende Schaltplan würde alle Fragen beantworten, die Sie dort haben.

Eine andere Option, die dem Importeur ähnelt, wäre, Posts von der alten Site an die wp-json-API-Endpunkte der WordPress-Site zu senden und die Migration auf diese Weise zu handhaben.

Wie @Rarst erwähnt, gibt es nicht wirklich eine Abkürzung, aber wie @Max in seinem Kommentar bemerkt hat, kann der Importer Ihnen zumindest im process auf der WordPress-Seite helfen.

Im Folgenden werden nur die Links für diese Punkte erläutert und konsolidiert.

WordPress Importer verwenden ( Extras> Importieren )

Es gibt eine Vielzahl von Optionen (und eine noch größere Vielzahl von Dingen, die zu beachten sind, bevor Sie eine davon verwenden), um Inhalte in WordPress zu importieren. Dies wäre die sicherste Methode. Hier können Sie sich mit vielen von ihnen vertraut machen: Importieren von Inhalten in WordPress

Einschließlich:

  • Blogger
  • Drupal
  • Excel-Tabelle / CSV / XML / JSON
  • Google Blog-Konverter
  • Joomla
  • LiveJournal
  • Magento
  • Mambo
  • Beweglicher Typ
  • Nukleus CMS
  • Plone
  • Posterous
  • SPIP
  • Tumblr
  • Twitter
  • TypPad
  • etc, usw., erhalten Sie den Punkt

Auf diesen Seiten sind auch verschiedene Plugins zum Importieren eines Exports eines vorherigen cms aufgelistet (mehrere Typen aufgelistet).

CSV, XML, RSS … auf jede Art und Weise. Sie müssen natürlich die Datei erstellen, die zur Verarbeitung benötigt wird.


database-Dump> Importieren

( Ohne Informationen über die aktuelle database zu kennen ) könnten Sie den Inhalt der alten DB- Seiten sichern und in einen SQL-Import konvertieren. Denken Sie nicht darüber nach, wenn Sie nicht wirklich wissen, was Sie tun. Du könntest ernsthaft Dinge vermasseln. Aber eine praktikable Option, wenn Sie damit vertraut sind.

Ich würde das nicht als WordPress- Lösung betrachten, sondern nur als einen Ansatz.


Importieren Sie Bridge mit WP-JSON API

Wenn Sie weiterhin Zugriff auf die alte database / Site haben, können Sie die wp-json API verwenden, indem Sie etwas an Ihrem Ende schreiben, das für jeden Eintrag in Ihrer alten database an den entsprechenden Endpunkt auf dem WordPress-Ende sendet.

Normalerweise können Sie dies erstellen, um Dinge synchron zu halten, aber es könnte auch als einmaliges Importwerkzeug funktionieren.


Ergänzend zu den zusätzlichen Fragen des OP in den Kommentaren:

Zuerst sollten Sie diese Ressource für den Umgang mit der class WP_REST_request mit einem Lesezeichen versehen

Angenommen, wir haben auf der alten Website ein wenig Code geschrieben, der den relevanten Inhalt erfasst und in ein formatiertes POST-Objekt einfügt und einen benutzerdefinierten Endpunkt annimmt:

[Old Site Data ] POST http zum Routen http://new-WP-site.com/wp-json/v2/plugin_namespace/v1/posts/

Am WP-Ende würden wir /plugin_namespace/v1/posts/ erstellen. Um dies zu ermöglichen, erweitern wir zunächst die class WP_REST_Controller .

In unserer class registrieren wir unsere Routen mit register_rest_routes() . Etwas wie:

 public function __construct() { add_action( 'rest_api_init', array($this, 'register_routes' ) ); }//end __construct public function register_routes() { $version = '1'; $namespace = 'plugin_namespace/v' . $version; $base = 'posts'; register_rest_route( $namespace, '/'. $base, array( array( 'methods' => 'GET', 'callback' => array( $this, 'this_is_a_callback_function' ), //'permission_callback' => array( $this, 'key_permissions_check' ), ), array( 'methods' => 'POST', 'callback' => array( $this, 'this_is_a_callback_function' ), //'permission_callback' => array( $this, 'key_permissions_check' ), ),) ); }//register_routes public function this_is_a_callback_function(WP_REST_Request $request) { //if posted in body like form data $posted_data = $request->get_body_params(); } 

Von diesem Punkt aus hat $posted_data was POST ed war, und Sie können es durchlaufen oder es an eine andere function weitergeben, die das tut.

Diese function müsste das post_array aus jedem Eintrag erstellen und dieses an wp_insert_post()

Ein Ansatz könnte unter Verwendung von WP_REST_Server::CREATABLE anstelle von methods => POST ebenfalls gemacht werden. Meins ist nur ein schnelles / unvollständiges Beispiel.

Ich habe auch die permissions_callbacks auskommentiert, aber diese Callback-function ist normalerweise der Ort, an dem Ihre Berechtigungsprüfungen stattfinden würden.

Beachten Sie, dass Sie mit wp_insert_post() auch ein Meta-Array übergeben können, wp_update_post jedoch nicht. wp_insert_post benötigt außerdem einen title und content . Wenn Sie eine andere ID als 0 übergeben, wird wp_upate_post .

Vielleicht möchten Sie etwas wie requestb.in betrachten, während Sie Ihren alten Site- Code aussortieren , um zu überprüfen, was er sendet, und der Postbote funktioniert ganz gut, um die Antwort der API zu überprüfen.

Wie ich in den Kommentaren erwähnt habe, könnte ngrok verwendet werden, um die Migration von nicht-wp zu wp in einer Entwicklungsumgebung vollständig durchzuführen .

Hoffentlich gibt Ihnen das genug Informationen, um es zu übersetzen, wen auch immer Sie brauchen.


Relevante WP-Tabellen (Beiträge)

Egal, ob Sie einen SQL-Import erstellen oder eine andere Bridge schreiben, für Posts wären die Tabellen, auf die WordPress-Endungen zu mappen wären:

Tabellenname : Daten in der Tabelle

wp_posts: die Beiträge

wp_postmeta: Meta-Werte veröffentlichen

wp_term_relationships: Beiträge zu Taxonomien

wp_term_taxonomy: Taxonomien

wp_terms: Tag- und Kategoriewerte

Hier ist das vollständige databaseschema Bildbeschreibung hier eingeben

Sie könnten die benutzerdefinierte Rewrite-Regel verwenden, so dass WP bestimmte URLs zum Aufrufen und Präsentieren von Daten aus der alten database interpretiert. Möchten Sie jedoch weiterhin Daten in der alten database verwalten? Wie in create / link WP Admin-Schnittstelle zum Speichern von Daten auf eine Weise, die es fremd ist? An diesem Punkt schreiben Sie Ihr eigenes CMS neben WP.

Wenn WP zu einer neuen kanonischen Methode wird, um auf diese Daten zuzugreifen und sie zu verwalten, wäre es meines Erachtens am besten, sie ordnungsgemäß in geeignete WP-Datenstrukturen zu migrieren.

Natürlich sind die Umstände sehr vorsichtig, je nach Bedarf könnten Sie einfach nur alte functionalität und Daten behalten und sie einfach in die WP-Site integrieren.

Kurz gesagt – je mehr WP dafür zuständig ist, desto besser wäre eine vollständige Migration.