Paieška ir keitimas WordPress duomenų bazėje
WordPress nesaugo Jūsų svetainės adreso vienoje vietoje. Jis nurodytas nustatymuose, bet taip pat tiesiogiai įrašytas Jūsų įrašuose, prie paveikslėlių ir temų, įskiepių bei valdiklių nustatymuose. Todėl pakeitę adresą turite jį pakeisti visoje duomenų bazėje. Čia sužinosite, kaip tai padaryti saugiai ir kodėl paprasta SQL užklausa gali sugadinti Jūsų svetainę.
Kada to prireikia?
- Jūsų svetainė veikė per http, o dabar veikia per https, ir matote mišrų turinį (https puslapį, kuris dalį elementų įkelia per http). Taip pat žr. Nėra spynelės arba „nesaugu“: mišraus turinio problemos sprendimas.
- Perkeliate svetainę į kitą domeną arba iš laikino adreso į tikrąjį domeną.
- Rankiniu būdu sukūrėte kopiją kitu adresu, pavyzdžiui, bandomąją svetainę.
Jei svetainę klonuojate su Installatron arba Website Manager, šie įrankiai kopijoje adresus pakeičia patys. Žr. Klonavimas ir bandomosios aplinkos (staging) kūrimas. Jei tik perkeliate svetainę į kitą prieglobą su tuo pačiu domenu, nieko keisti nereikia.
Kodėl ne paprasta SQL REPLACE užklausa?
phpMyAdmin galite viena SQL užklausa pakeisti visus tekstus. Adresams to nedarykite. Daugelis nustatymų saugomi serializuoti: PHP prie kiekvieno teksto įrašo jo ilgį. Tai atrodo taip:
s:27:"http://example.com/logo.png";
s:27 reiškia: toliau eina 27 simbolių tekstas. Jei pakeisite į https://, tekstas bus 28 simbolių, bet vis tiek bus nurodyta 27. Tada PHP nebegali perskaityti reikšmės ir nustatymas tyliai dingsta. Pavyzdžiui, matysite tuščią meniu, dingusį logotipą arba išnykusius valdiklius. Todėl naudokite įrankį, kuris šiuos ilgius atnaujina.
Pirmiausia atsarginė kopija
Paieška ir keitimas vykdomi iš karto, šiukšliadėžės nėra. Iš anksto eksportuokite duomenų bazę, žr. Duomenų bazės eksportavimas, arba vienu paspaudimu sukurkite papildomą atsarginę kopiją WebOké Backups, žr. WebOké Backups: atsarginės kopijos peržiūra, atkūrimas arba atsisiuntimas.
1 būdas: WP-CLI per Terminal arba SSH
WP-CLI yra oficiali WordPress komandinės eilutės programa. Pas mus ją naudojate kaip komandą wp DirectAdmin Terminal arba per SSH. Ji prieinama tik planuose su SSH. Kurie tai planai, sužinosite straipsnyje Terminal Jūsų naršyklėje.
- Atidarykite Terminal ir eikite į savo WordPress katalogą:
cd domains/example.com/public_html - Pirmiausia pažiūrėkite, kas pasikeistų, nieko nekeisdami:
wp search-replace 'http://example.com' 'https://example.com' --skip-columns=guid --dry-run
Matysite, kiek pakeitimų būtų kiekvienoje lentelėje. - Jei viskas teisinga, paleiskite tą pačią komandą be
--dry-run.
Keletas komandos parinkčių:
- Be papildomų parinkčių WP-CLI dirba su lentelėmis, kurias žino WordPress. Jei įskiepis naudoja savo lenteles su tuo pačiu prefiksu (pavyzdžiui,
wp_), pridėkite--all-tables-with-prefix. Parinktis--all-tablespaveikia visas duomenų bazės lenteles, taip pat ir kitos svetainės, kuri atsitiktinai joje yra. --skip-columns=guidpalieka nepaliestą stulpelįguidsu pastoviais įrašų identifikatoriais. WordPress rekomenduoja jo niekada nekeisti, kitaip naujienų skaitytuvai senus įrašus vėl rodys kaip naujus.- Jei kyla problemų su sudėtingais nustatymais,
--preciseveikia lėčiau, bet nuodugniau.
2 būdas: įskiepis
Jei neturite Terminal ar SSH, naudokite paieškos ir keitimo įskiepį, kuris palaiko serializuotus duomenis. Tokių yra keletas wordpress.org įskiepių kataloge. Rinkdamiesi perskaitykite aprašymą: jame turi būti nurodyta, kad įskiepis teisingai apdoroja serializuotus duomenis. Ir čia pirmiausia naudokite bandomąjį režimą, jei įskiepis jį turi, o baigę įskiepį pašalinkite. Taip pat žr. WordPress įskiepių pasirinkimas, vertinimas ir tvarkymas.
http:// arba https:// priekyje. Jei pakeisite tik example.com, pakeisite ir el. pašto adresus, tokius kaip info@example.com, bei kitus tekstus, kuriuose yra šis pavadinimas. Taip pat atkreipkite dėmesį į pasvirąjį brūkšnį pabaigoje: jei https://example.com/ pakeisite į https://example.net, adresai susilies.Tik WordPress adresas ir svetainės adresas?
Ar po pakeitimo nebegalite patekti į valdymo sritį, nes WordPress nukreipia Jus neteisingu adresu? Tada pirmiausia pakeiskite tik eilutes siteurl ir home lentelėje wp_options (prefiksas wp_ Jūsų atveju gali būti kitas). Tai paprasti tekstai, juos galite keisti phpMyAdmin. Kaip tai padaryti, sužinosite straipsnyje phpMyAdmin atidarymas ir naudojimas. Likusius pakeitimus atlikite su WP-CLI arba įskiepiu.
Baigus
- Išvalykite talpyklos įskiepio ir naršyklės talpyklą.
- Jei puslapiai rodo 404 klaidą, vieną kartą išsaugokite nustatymus skiltyje Nustatymai > Pastoviosios nuorodos. Žr. Mano svetainė neveikia po įkėlimo arba perkėlimo.
- Patikrinkite kelis puslapius, meniu, logotipą ir formą. Paspaudę F12 konsolėje patikrinkite, ar dar yra pranešimų apie mišrų turinį.
Skaitykite toliau
- wp search-replace svetainėje developer.wordpress.org (anglų k.)
- WordPress perkėlimas rankiniu būdu: failai, duomenų bazė ir wp-config.php
Norite sužinoti daugiau? Lankykite nemokamą WordPress kursą, pamoką 3.2 www, peradresavimas ir mišrus turinys arba pamoką 9.5 WordPress svetainės perkėlimas.
