Startseite » WordPress » Suchen und Ersetzen von WordPress-Datenbanken auf einfache Weise

    Suchen und Ersetzen von WordPress-Datenbanken auf einfache Weise

    Es gibt mehrere Anlässe, bei denen wir müssen URLs in unserer WordPress Website Datenbank ändern. Zum Beispiel müssen wir dies nach der Migration einer WordPress-Datenbank von einer Site, z. von dem http://acme.com entfernter Produktionsstandort an die http://acme.dev lokale Entwicklungswebsite auf unserem Computer.

    WordPress.org enthält eine Vielzahl von Plug-Ins, wie WP DBManager und WP Migrate DB, und es gibt auch eine Reihe von Tools von Drittanbietern, die dies ermöglichen Datenbank importieren leicht. Der schwierige Teil muss sein Ändern Sie jede URL-Instanz in der Datenbank.

    Nach der Migration der Datenbank befinden sich darin URLs noch auf die alte Seite verweisen, in diesem Fall zu acme.com. Sie finden die alte URL in der wp_options Tabelle, als Wert der gesetzt Seiten-URL und Zuhause Optionen, und es ist wahrscheinlich auch in mehrere andere Zeilen und Tabellen in der Datenbank eingebettet. Diese alten URLs können möglicherweise dazu führen, dass Ihre Website nicht ordnungsgemäß ausgeführt wird Ändern Sie sie in die neue URL, in unserem Beispiel zu acme.dev.

    IMAGE: Sequel Pro, Datenbankwert gesucht

    An dieser Stelle können Sie auf unsere Entwicklungsseite unter zugreifen acme.dev werde einfach führen auf eine leere Seite.

    Wie ändern wir also alle diese URLs in der Datenbank??

    Ausführen einer SQL-Abfrage

    Normalerweise führen Benutzer die folgende SQL-Abfrage aus, die die Werte von ersetzt Seiten-URL und Zuhause Optionen in der wp_options Tabelle.

     UPDATE wp_options SET option_value = replace (Optionswert, "http://acme.com", "http://acme.dev") WHERE option_name = 'home' ODER option_name = 'siteurl'; 

    Anschließend verwenden sie eine andere SQL-Abfrage, um alle URL-Vorkommen in der URL zu ersetzen wp_posts Tisch, nämlich in der post_content Spalte jeder Zeile.

     UPDATE wp_posts SET post_content = replace (post_content, "http://acme.com", "http://acme.dev"); 

    Das Ausführen dieser Abfragen ist eine praktikable Lösung, die jedoch nicht bequem ist. Es könnte sogar nervenaufreibend sein, zu sehen, wie die Datenbank durch ein einfaches Versehen in der Abfrage haywire werden kann.

    WP-CLI nutzen

    Eine andere Route, die wir machen können, und die ich für eine praktischere Alternative gefunden habe, ist von Verwenden der WP-CLI-Befehlszeile. Dies bedeutet, dass Sie WP-CLI installiert haben müssen.

    Vorausgesetzt, Sie haben WP-CLI installiert und haben die wp Wenn der Befehl als Alias ​​verfügbar ist, navigieren Sie zu dem Verzeichnis, in dem sich Ihre WordPress-Site-Dateien befinden.

    Führen Sie dann den folgenden Befehl aus:

    wp search-replace "http://acme.com" http://acme.dev

    Der erste Parameter, "http://acme.com", ist der alte Eintrag, der durch den zweiten ersetzt wird, "http://acme.dev".

    Die Befehlszeile wird durchsucht Alle Tabellen in der Datenbank, nicht nur das post_content Spalte und wp_options Tisch und Ersetzen Sie jede Instanz des Eintrags, der durch die Parameter des Befehls übergeben wird.

    Wie Sie dem obigen Screenshot entnehmen können, wurden insgesamt 225 ersetzt. Und wir haben es durch eine einfache Befehlszeile gemacht.

    Ich denke, es ist erwähnenswert, dass wir das nutzen können wp suchen und ersetzen Befehl, nicht nur zum Ersetzen von URLs, sondern für jedes Stück Wert auch in der Datenbank gespeichert. Wir können die Operation auch auf eine bestimmte Tabelle beschränken, indem Sie den Tabellennamen als vierten Parameter übergeben:

    wp search-replace '.jpg ".webp" wp_posts

    Beim Ausführen des obigen Befehls wird nur gesucht wp_posts, die Tabelle, in der unsere Inhalte (Posts, Seiten usw.) gespeichert werden, und ersetzen die Bilderweiterung von .jpg zu .webp.

    WP-CLI lässt einen verwickelten SQL-Vorgang intuitiver aussehen und Sie können auf bequemere Weise damit arbeiten. Wenn Sie Ihre Befehle verfeinern möchten, sehen Sie sich die Dokumentation von WP-CLI an. Diese enthält eine Liste von Optionen, mit denen Sie eine erweiterte Operation mit dem ausführen können wp suchen und ersetzenBefehl.