Immer wenn ich eine neue Website erstelle, erstelle ich zuerst eine Staging-Site in einer Subdomain wie "stage.domain-name.com".
Nachdem alles korrekt funktioniert, exportiere ich die Datenbank, öffne sie in Notepad ++ und führe ein Suchen / Ersetzen für "subdomain.domain-name.com" durch "domain-name.com" durch ... schließlich importiere ich sie in eine neue Datenbank für die Live-Site.
Meine Frage ist ... welche SQL-Abfrage müsste ich ausführen, wenn ich diese einfache Suche / Ersetzung in der gesamten Datenbank mit phpmyadmin durchführen möchte?
-CH
mysql
query
sql
customization
NetConstructor.com
quelle
quelle
Antworten:
Die Tabelle, in der Ihre URL gespeichert ist, lautet wp_options. Sie sollten ein Update für die Spalten durchführen, die die URL für Ihre Site verwenden:
Möglicherweise fehlt ein Wert, aber wenn Sie diesen Such- / Ersetzungsvorgang erneut ausführen, können Sie die zu aktualisierenden Werte und Tabellen feststellen und zu diesem Skript hinzufügen.
WordPress Codex hat eine nette Anleitung zum Ändern einer Site-URL. Vielleicht ist das sogar noch einfacher für Sie: Ändern der Site-URL
quelle
Am besten Optionen, Posts, Post-Content und Post-Meta:
Siehe auch Durchsuchen von Daten mit phpMyAdmin und MySQL | Packt Publishing. Und Search RegEx ist ein gutes WP-Plugin, um mit Grep alle Posts und Seiten durchsuchen und ersetzen zu können.
Update 16.06.2015: Die Verwendung des im nächsten Satz verlinkten Tools ist viel besser, da ein einfaches Suchen / Ersetzen wie oben in einem Datenbank-Dump serialisierte Daten zerstört. Siehe interconnectit.com WordPress Serialized PHP Search Replace Tool. Auf diese Weise brechen Sie keine serialisierten Daten und müssen RegEx nicht für Post-Inhalte ausführen, da das Interconnect-Skript die URLs überall ändert. Ich benutze dieses Tool die ganze Zeit, um Websites in andere Domänen zu migrieren oder einfach eine globale Änderung von http zu https vorzunehmen, um SSL ohne Plugins zu erzwingen und alle URLs im Inhalt zu ändern, um unsichere Elementfehler zu vermeiden.
quelle
Dies ist ein großartiges Drop-In-Skript, das ich verwende, und es funktioniert hervorragend mit den serialisierten Arrays, die WP zum Speichern von Optionen verwendet. Stellen Sie einfach sicher, dass Sie es von Ihrem Remote-Server löschen, wenn Sie fertig sind, da dies ein RIESIGES Sicherheitsrisiko darstellt.
https://interconnectit.com/products/search-and-replace-for-wordpress-databases/
quelle
Dafür benutze ich WP-CLI, weil ich es am einfachsten finde und es sich um serialisierte Daten kümmert.
wp search-replace 'http://example.dev' 'http://example.com' --skip-columns=guid
Es gibt auch eine Option, die Ihre Änderungen in eine SQL-Datei schreibt, anstatt die eigentliche Datenbank zu manipulieren:
wp search-replace foo bar --export=database.sql
quelle
Sie müssen dies nicht tun, Sie können relative Pfade verwenden.
Wenn Sie etwas verlinken, anstatt subdomain.soemthing.com/image.jpg - verwenden Sie zum Beispiel /image.jpg
Auf diese Weise werden Sie dem Problem nicht in erster Linie gegenüberstehen.
Andernfalls können Sie für eine mysql update-Anweisung verwenden
quelle
Um die häufig benötigte WordPress-Domain zu ändern, muss die Site möglicherweise über localhost live geschaltet werden: Dies ist eine vollständige Liste der Aktualisierungsabfragen:
UPDATE: Search Replace DB Version 3.1.0 ist ein benutzerfreundliches Front-End-Tool für Entwickler, mit dem Sie datenbankweite Such- / Ersetzungsaktionen ausführen können, die PHP-serialisierte Zeichenfolgen oder Objekte nicht beschädigen.
quelle
Tatsächlich müssen Sie keine SQL-Abfrage verwenden, sondern nur einige Anpassungen in der Datei wp_config und functions.php in Ihrem Design. Sehen Sie sich dieses Thema im Wordpress-Codex an: https://codex.wordpress.org/Changing_The_Site_URL
quelle