Vyhľadávanie a nahrádzanie v databáze WordPress
WordPress neukladá adresu vašej stránky na jednom mieste. Nachádza sa v nastaveniach, ale aj priamo vo vašich príspevkoch, pri obrázkoch a v nastaveniach tém, pluginov a widgetov. Ak adresu zmeníte, musíte ju preto nahradiť v celej databáze. Tu sa dočítate, ako to urobiť bezpečne a prečo môže obyčajný SQL príkaz vašu stránku pokaziť.
Kedy to potrebujete?
- Vaša stránka bežala na http a teraz beží na https, pričom vidíte zmiešaný obsah (stránka na https, ktorá načítava časti cez http). Pozrite si aj Chýba zámok alebo „nezabezpečené“: riešenie zmiešaného obsahu.
- Presúvate svoju stránku na inú doménu alebo z dočasnej adresy na vašu skutočnú doménu.
- Ručne ste vytvorili kópiu na inej adrese, napríklad testovaciu stránku.
Ak stránku klonujete pomocou Installatron alebo Website Manager, adresy v kópii sa upravia automaticky. Pozrite si Klonovanie a vytvorenie testovacieho prostredia (staging). Ak sa presúvate iba na iný hosting s rovnakou doménou, nie je potrebné nič meniť.
Prečo nie obyčajný SQL REPLACE?
V phpMyAdmin môžete jedným SQL príkazom nahradiť všetky texty. Pri adresách to nerobte. Mnohé nastavenia sú uložené serializovane: PHP k nim pridáva dĺžku každého textu. Vyzerá to takto:
s:27:"http://example.com/logo.png";
s:27 znamená: nasleduje text s dĺžkou 27 znakov. Ak z neho urobíte https://, text bude mať 28 znakov, no stále tam bude uvedené 27. PHP potom hodnotu nedokáže prečítať a nastavenie potichu zmizne. Uvidíte napríklad prázdne menu, zmiznuté logo alebo chýbajúce widgety. Preto použite nástroj, ktorý tieto dĺžky aktualizuje.
Najprv záloha
Vyhľadanie a nahradenie prebehne okamžite a nemá kôš. Vopred si exportujte databázu, pozrite si Export databázy, alebo si jedným kliknutím vytvorte dodatočnú zálohu vo WebOké Backups, pozrite si WebOké Backups: zobrazenie, obnovenie alebo stiahnutie zálohy.
Spôsob 1: WP-CLI v termináli alebo cez SSH
WP-CLI je oficiálny nástroj príkazového riadka pre WordPress. U nás ho používate ako príkaz wp v termináli DirectAdmin alebo cez SSH. Ten je k dispozícii iba v balíkoch s SSH. O ktoré balíky ide, sa dočítate v článku Terminál vo vašom prehliadači.
- Otvorte terminál a prejdite do priečinka vášho WordPressu:
cd domains/example.com/public_html - Najprv si pozrite, čo by sa zmenilo, bez toho, aby sa čokoľvek upravilo:
wp search-replace 'http://example.com' 'https://example.com' --skip-columns=guid --dry-run
Pri každej tabuľke uvidíte, koľko nahradení by sa vykonalo. - Ak to sedí, spustite ten istý príkaz bez
--dry-run.
Niekoľko možností v príkaze:
- Bez ďalšej voľby WP-CLI pracuje s tabuľkami, ktoré WordPress pozná. Ak plugin používa vlastné tabuľky s rovnakou predponou (napríklad
wp_), pridajte--all-tables-with-prefix. Voľba--all-tableszasiahne všetky tabuľky v databáze, aj tabuľky inej stránky, ktorá sa v nej náhodou nachádza. --skip-columns=guidponechá bez zmeny stĺpecguids pevnými identifikátormi príspevkov. WordPress odporúča ho nikdy nemeniť, inak čítačky kanálov zobrazia staré príspevky znova ako nové.- Ak sa pri zložitých nastaveniach niečo pokazí, voľba
--precisefunguje pomalšie, ale dôkladnejšie.
Spôsob 2: plugin
Ak nemáte terminál ani SSH, použite plugin na vyhľadanie a nahradenie, ktorý podporuje serializované údaje. Viacero takých nájdete v adresári pluginov na wordpress.org. Pri výbere si prečítajte popis: musí v ňom byť uvedené, že plugin správne spracúva serializované údaje. Aj tu najprv použite skúšobný režim, ak ho plugin má, a po dokončení plugin odstráňte. Pozrite si aj Výber, hodnotenie a upratovanie pluginov WordPress.
http:// alebo https:// na začiatku. Ak nahradíte iba example.com, zmeníte aj e-mailové adresy, ako napríklad info@example.com, a ďalšie texty, v ktorých sa názov vyskytuje. Dávajte pozor aj na lomku na konci: ak nahradíte https://example.com/ adresou https://example.net, adresy sa spoja dohromady.Iba adresa WordPressu a adresa stránky?
Nedostanete sa po zmene do administrácie, pretože vás WordPress presmeruje na nesprávnu adresu? Potom najprv upravte iba riadky siteurl a home v tabuľke wp_options (predpona wp_ môže byť u vás iná). Ide o obyčajné texty, ktoré môžete v phpMyAdmin upraviť. Ako na to, sa dočítate v článku Otvorenie a používanie phpMyAdmin. Zvyšok potom urobte pomocou WP-CLI alebo pluginu.
Po dokončení
- Vyprázdnite cache vášho cache pluginu a vášho prehliadača.
- Ak stránky zobrazujú chybu 404, v časti Nastavenia > Trvalé odkazy raz kliknite na uloženie. Pozrite si Moja webová stránka po nahratí alebo presťahovaní nefunguje.
- Skontrolujte niekoľko stránok, vaše menu, logo a jeden formulár. Pomocou F12 sa v konzole pozrite, či sa tam ešte nachádzajú hlásenia o zmiešanom obsahu.
Ďalšie čítanie
- wp search-replace na developer.wordpress.org (v angličtine)
- Ručné presťahovanie WordPressu: súbory, databáza a wp-config.php
Chcete sa dozvedieť viac? Absolvujte bezplatný kurz WordPress, lekciu 3.2 www, presmerovanie a zmiešaný obsah alebo lekciu 9.5 Presťahovanie stránky WordPress.
