Masse Finn & Erstatt WordPress Databaser - Den enkle måten
Det er flere anledninger der vi må endre webadresser i vår WordPress nettside database. For eksempel må vi gjøre dette etter å ha migrert en WordPress-database fra ett nettsted, f.eks. fra http://acme.com
fjernproduksjonssted, til http://acme.dev
lokal utvikling nettsted på vår datamaskin.
WordPress.org er vert for et stort antall plugins, for eksempel WP DBManager og WP Migrate DB, og det finnes også en rekke tredjepartsverktøy som lar deg import database Enkelt. Den vanskelige delen er å måtte endre alle URL-forekomster inne i databasen.
Etter å ha migrert databasen, er nettadresser inne i den peker fortsatt på det gamle nettstedet, i dette tilfellet til acme.com
. Du kan finne den gamle nettadressen i wp_options
bord, sett som verdien av SITEURL
og hjem
alternativer, og det er sannsynligvis også innebygd gjennom flere andre rader og tabeller i databasen. Disse gamle nettadressene kan til slutt forhindre at nettstedet ditt kjører riktig, så du må endre dem til den nye nettadressen, i vårt eksempel til acme.dev
.
På dette punktet får du tilgang til utviklingsstedet vårt på acme.dev
vil ganske enkelt lede til en tom side.
Så hvordan endrer vi alle disse nettadressene i databasen?
Kjører en SQL-spørring
Vanligvis vil folk kjøre følgende SQL Query som erstatter verdiene til SITEURL
og hjem
alternativer i wp_options
bord.
OPPDATERING wp_options SET option_value = erstatte (option_value, 'http://acme.com', 'http://acme.dev') HVOR option_name = 'home' ELLER option_name = 'siteurl';
Deretter bruker de en annen SQL-spørring for å erstatte alle nettadressevilkårene i wp_posts
bord, nemlig i POST_CONTENT
kolonne på hver rad.
OPPDATERING wp_posts SET post_content = erstatt (post_content, 'http://acme.com', 'http://acme.dev');
Å kjøre disse spørsmålene er en brukbar løsning, men samtidig er det ikke praktisk å gjøre. Det kan være enda nervøs, se hvordan databasen kan slå haywire på grunn av en enkel oversikt i spørringen.
Levering av WP-CLI
En annen rute vi kan gjøre, og som jeg har funnet å være et mer praktisk alternativ, er ved utnytte WP-CLI kommandolinjen. Dette betyr at du må ha WP-CLI installert.
Forutsatt at du har installert WP-CLI og har wp
Kommandoen er tilgjengelig som alias, navigere til katalogen der WordPress-nettstedene dine ligger.
Kjør deretter følgende kommando:
wp search-replace 'http://acme.com' http://acme.dev
Den første parameteren, 'Http://acme.com'
, Er den gamle oppføringen til å bli erstattet med den andre, 'Http://acme.dev'
.
Kommandolinjen vil søke gjennom alle tabellene i databasen, ikke bare POST_CONTENT
kolonne og wp_options
bord og erstatt alle forekomster av oppføringen gikk gjennom parametrene til kommandoen.
Som du kan se fra ovenstående skjermbilde, har det blitt gjort 225 erstatninger. Og vi har gjort det gjennom en enkel kommando.
Jeg synes det er verdt å nevne at vi kan bruke wp søke-erstatte
kommando, ikke bare for å erstatte nettadresser, men noe av verdi lagret i databasen også. Vi kan også begrense operasjonen til et bestemt bord ved å sende tabellnavnet som fjerde parameter, som følger:
wp search-replace '.jpg' .webp 'wp_posts
Kjører kommandoen ovenfor, den vil bare søke gjennom wp_posts
, tabellen som lagrer innholdet vårt - innlegg, sider, etc. - og erstatt bildeforlengelsen fra .jpg
til .webp
.
WP-CLI gjør en sammenflettet SQL-operasjon ser mer intuitiv ut, og du kan jobbe med den på en mer praktisk måte. Hvis du vil finjustere kommandoene dine, kan du se på WP-CLIs dokumentasjon, som gir deg en liste over alternativer for å utføre en mer avansert operasjon med wp søke-erstatte
kommando.