Mass Find & Replace WordPress Databases - The Easy Way
Er zijn verschillende gelegenheden waarbij we URL's in onze WordPress-websitedatabase moeten wijzigen . Dit moeten we bijvoorbeeld doen na het migreren van een WordPress-database van de ene site, bijvoorbeeld van de externe productiesite van http://acme.com
naar de http://acme.dev
lokale ontwikkelingswebsite op onze computer.
WordPress.org host een groot aantal plug-ins, zoals WP DBManager en WP Migrate DB, en er zijn ook een aantal hulpprogramma's van derden waarmee u gemakkelijk een database kunt importeren . Het lastige is dat elke URL-instantie in de database moet worden gewijzigd .
Nadat de database is gemigreerd, wijzen URL's in de database nog steeds naar de oude site, in dit geval naar acme.com
. Mogelijk vindt u de oude URL in de tabel wp_options
, die is ingesteld als de waarde van de siteurl
en home
, en waarschijnlijk is deze ook ingesloten in meerdere andere rijen en tabellen in de database. Deze oude URL's kunnen uiteindelijk voorkomen dat uw site correct werkt, dus u moet deze naar de nieuwe URL wijzigen, in ons voorbeeld naar acme.dev
.
acme.dev
eenvoudigweg leiden naar een lege pagina .Dus hoe kunnen we al deze URL's in de database wijzigen?
Een SQL-query uitvoeren
Gewoonlijk zouden mensen de volgende SQL Query uitvoeren die de waarden van de siteurl
en home
opties in de tabel wp_options
.
UPDATE wp_options SET option_value = replace (option_value, 'http://acme.com', 'http://acme.dev') WHERE option_name = 'home' OF option_name = 'siteurl';
Vervolgens gebruiken ze een andere SQL-query om alle URL-occurrences in de tabel wp_posts
te vervangen, namelijk in de kolom post_content
van elke rij.
UPDATE wp_posts SET post_content = replace (post_content, 'http://acme.com', 'http://acme.dev');
Het uitvoeren van deze query's is een werkbare oplossing, maar is tegelijkertijd niet handig om te doen. Het zou zelfs zenuwslopend kunnen zijn en zien hoe de database in de war raakt als gevolg van een eenvoudig overzicht in de query.
Gebruikmaken van WP-CLI
Een andere route die we kunnen uitvoeren, en waarvan ik heb ontdekt dat ze een handiger alternatief zijn, is het gebruik van de WP-CLI-opdrachtregel . Dit betekent dat u WP-CLI moet hebben geïnstalleerd.
Ervan uitgaande dat u WP-CLI hebt geïnstalleerd en de wp
opdracht toegankelijk hebt als de alias, navigeert u naar de map waar uw WordPress-sitebestanden zich bevinden.
Voer vervolgens de volgende opdracht uit:
wp search-replace 'http://acme.com' 'http://acme.dev
De eerste parameter, 'http://acme.com'
, is de oude invoer die moet worden vervangen door de tweede, 'http://acme.dev'
.
wp_options
tabel wp_options
, en vervangt elk exemplaar van het item dat door de parameters van de opdracht is geleid.Zoals je kunt zien aan de bovenstaande screenshot, zijn in totaal 225 vervangingen gemaakt. En we hebben het gedaan via een eenvoudige opdrachtregel.
Ik denk dat het de moeite van het vermelden waard is dat we de opdracht wp search-replace
gebruiken, niet alleen voor het vervangen van URL's, maar ook voor elk stukje waarde dat in de database is opgeslagen. We kunnen de bewerking ook beperken tot een bepaalde tabel door de tabelnaam als de vierde parameter door te geven, als volgt:
wp search-replace '.jpg' '.webp' wp_posts
Als u de bovenstaande opdracht wp_posts
, wordt alleen gezocht via wp_posts
, de tabel waarin onze inhoud wordt opgeslagen (berichten, pagina's, enzovoort) en vervangt u de afbeeldingsextensie van .jpg
naar .webp
.
WP-CLI zorgt ervoor dat een verwarde SQL-bewerking intuïtiever oogt en dat u er op een handigere manier mee kunt werken. Als u uw opdrachten wilt verfijnen, bekijk dan de documentatie van WP-CLI, die u een lijst met opties geeft om een meer geavanceerde bewerking uit te voeren met de opdracht wp search-replace
.
5 historische freelancers die de wereld hebben veranderd
Als Alfred Nobel, Andrew Carnegie, Walt Disney of Ray Kroc vandaag twintig waren, zou je hun profielen waarschijnlijk op Elance of Freelancer zien. Deze historische figuren begonnen in wezen als freelancers voordat het woord freelancer zelfs werd uitgevonden - omdat dat precies was wat ze waren.Freelancen is slechts een woord dat wordt gebruikt om een gemoedstoestand, een staat van onafhankelijkheid en verantwoordelijkheid voor zichzelf te beschrijven
7 gratis eBooks om AngularJS te leren kennen
Dus je hebt deze Angular-serie gevolgd (als je dat nog niet hebt gedaan, begin dan bovenaan) en ben je op een punt gekomen dat je enigszins op je gemak bent met het spelen met Angular of zelfs een app ermee kunt bouwen. Voor een meer complete richtlijn bij het bestuderen van een project, kunnen we altijd naar e-boeken gaan