Hjemmeside » WordPress » Masse Finn & Erstatt WordPress Databaser - Den enkle måten

    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.

    IMAGE: Sequel Pro, søker database verdi

    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-erstattekommando.