Søk og erstatt i WordPress-databasen
WordPress lagrer ikke adressen til nettstedet ditt på ett sted. Den står i innstillingene, men også bokstavelig i innleggene dine, ved bilder og i innstillinger for temaer, plugins og widgets. Endrer du adressen, må du derfor bytte den ut i hele databasen. Her leser du hvordan du gjør det trygt, og hvorfor en vanlig SQL-kommando kan ødelegge nettstedet ditt.
Når trenger du dette?
- Nettstedet ditt lå på http og kjører nå på https, og du ser blandet innhold (en side på https som laster inn deler via http). Se også Ingen hengelås eller «ikke sikker»: løs blandet innhold.
- Du flytter nettstedet ditt til et annet domene, eller fra en midlertidig adresse til det ekte domenet ditt.
- Du har laget en kopi manuelt på en annen adresse, for eksempel et testnettsted.
Kloner du et nettsted med Installatron eller Website Manager, justerer verktøyet selv adressene i kopien. Se Klone og lage et testmiljø (staging). Flytter du bare til en annen hosting med samme domene, trenger ingenting å endres.
Hvorfor ikke en ren SQL REPLACE?
I phpMyAdmin kan du bytte ut all tekst med én SQL-kommando. Ikke gjør det for adresser. Mange innstillinger er lagret serialisert: PHP legger til lengden på hver tekst. Det ser slik ut:
s:27:"http://example.com/logo.png";
s:27 betyr: her følger en tekst på 27 tegn. Gjør du den om til https://, er teksten 28 tegn lang, men det står fortsatt 27. PHP kan da ikke lenger lese verdien, og innstillingen forsvinner stille. Du ser da for eksempel en tom meny, en logo som er borte eller widgets som har forsvunnet. Bruk derfor et verktøy som oppdaterer disse lengdene.
Ta en sikkerhetskopi først
Søk og erstatt skjer umiddelbart og har ingen papirkurv. Eksporter databasen din på forhånd, se Eksportere en database, eller ta en ekstra sikkerhetskopi med ett klikk i WebOké Backups, se WebOké Backups: se, gjenopprette eller laste ned en sikkerhetskopi.
Metode 1: WP-CLI i Terminal eller via SSH
WP-CLI er WordPress sitt offisielle kommandolinjeverktøy. Hos oss bruker du det som kommandoen wp i Terminal i DirectAdmin eller via SSH. Det har du bare i pakkene med SSH. Hvilke pakker det gjelder, leser du i Terminal i nettleseren.
- Åpne Terminal og gå til mappen for WordPress:
cd domains/example.com/public_html - Se først hva som ville blitt endret, uten å endre noe:
wp search-replace 'http://example.com' 'https://example.com' --skip-columns=guid --dry-run
Du ser per tabell hvor mange erstatninger det ville blitt. - Stemmer det, kjører du den samme kommandoen uten
--dry-run.
Noen valg i kommandoen:
- Uten ekstra valg jobber WP-CLI med tabellene WordPress kjenner til. Bruker en plugin egne tabeller med samme prefiks (for eksempel
wp_), legger du til--all-tables-with-prefix. Valget--all-tablesberører alle tabellene i databasen, også de fra et annet nettsted som tilfeldigvis ligger der. --skip-columns=guidlar kolonnenguidmed de faste kjennetegnene for innlegg være i fred. WordPress anbefaler å aldri endre den, ellers viser feedlesere gamle innlegg på nytt som nye.- Går noe galt med kompliserte innstillinger, er
--precisetregere, men grundigere.
Metode 2: en plugin
Har du ikke Terminal eller SSH, bruker du en plugin for søk og erstatt som støtter serialiserte data. Det finnes flere av dem i pluginkatalogen på wordpress.org. Les beskrivelsen når du velger: det må stå at den håndterer serialiserte data riktig. Bruk også her prøvemodus først hvis pluginen har det, og slett pluginen når du er ferdig. Se også Velge, vurdere og rydde opp i WordPress-plugins.
http:// eller https:// foran. Bytter du bare ut example.com, endrer du også e-postadresser som info@example.com og annen tekst der navnet står. Pass også på skråstreken på slutten: bytter du ut https://example.com/ med https://example.net, klistres adressene sammen.Bare WordPress-adressen og nettstedsadressen?
Kommer du ikke lenger inn i administrasjonen etter en endring, fordi WordPress sender deg til feil adresse? Da endrer du først bare radene siteurl og home i tabellen wp_options (prefikset wp_ kan være annerledes hos deg). Det er vanlig tekst, og den kan du endre i phpMyAdmin. Hvordan du gjør det, leser du i Åpne og bruke phpMyAdmin. Deretter gjør du resten med WP-CLI eller en plugin.
Etterpå
- Tøm hurtigbufferen i cachepluginen din og i nettleseren.
- Gir sider 404, lagrer du én gang under Innstillinger > Permalenker. Se Nettstedet mitt virker ikke etter opplasting eller flytting.
- Kontroller noen sider, menyen, logoen og et skjema. Se med F12 i konsollen om det fortsatt står meldinger om blandet innhold.
Les mer
- wp search-replace på developer.wordpress.org (engelsk)
- Flytte WordPress manuelt: filer, database og wp-config.php
Vil du lære mer? Ta det gratis WordPress-kurset, leksjon 3.2 www, videresending og blandet innhold eller leksjon 9.5 Flytte et WordPress-nettsted.
