Pretraživanje i zamjena u WordPress bazi podataka
WordPress ne sprema adresu Vaše web stranice na jednom mjestu. Ona se nalazi u postavkama, ali i doslovno u Vašim objavama, uz slike te u postavkama tema, dodataka i widgeta. Ako promijenite adresu, morate je stoga zamijeniti u cijeloj bazi podataka. Ovdje ćete pročitati kako to sigurno učiniti i zašto obična SQL naredba može pokvariti Vašu web stranicu.
Kada Vam je ovo potrebno?
- Vaša je web stranica bila na http, a sada radi na https, i vidite miješani sadržaj (stranica na https koja dijelove učitava preko http). Pogledajte i Nema lokota ili „nije sigurno”: rješavanje miješanog sadržaja.
- Selite web stranicu na drugu domenu ili s privremene adrese na svoju pravu domenu.
- Ručno ste napravili kopiju na drugoj adresi, primjerice testnu web stranicu.
Ako web stranicu klonirate pomoću Installatrona ili Website Managera, on sam prilagođava adrese u kopiji. Pogledajte Kloniranje i izrada testnog okruženja (staging). Ako se samo selite na drugi hosting s istom domenom, ništa se ne mora mijenjati.
Zašto ne obični SQL REPLACE?
U phpMyAdminu možete jednom SQL naredbom zamijeniti sve tekstove. Nemojte to činiti za adrese. Mnoge su postavke spremljene serijalizirano: PHP uz njih bilježi duljinu svakog teksta. To izgleda ovako:
s:27:"http://example.com/logo.png";
s:27 znači: slijedi tekst od 27 znakova. Ako od toga napravite https://, tekst je dugačak 28 znakova, ali i dalje piše 27. PHP tada više ne može pročitati vrijednost i postavka tiho nestaje. Tada vidite, primjerice, prazan izbornik, nestali logotip ili widgete kojih više nema. Zato koristite alat koji ažurira te duljine.
Najprije sigurnosna kopija
Pretraživanje i zamjena djeluju odmah i nemaju koš za smeće. Prije toga izvezite svoju bazu podataka, pogledajte Izvoz baze podataka, ili jednim klikom napravite dodatnu sigurnosnu kopiju u WebOké Backups, pogledajte WebOké Backups: pregled, vraćanje ili preuzimanje sigurnosne kopije.
1. način: WP-CLI u Terminalu ili putem SSH-a
WP-CLI je službeni program naredbenog retka za WordPress. Kod nas ga koristite kao naredbu wp u Terminalu DirectAdmina ili putem SSH-a. To imate samo u paketima sa SSH-om. O kojim je paketima riječ, pročitajte u Terminal u Vašem pregledniku.
- Otvorite Terminal i prijeđite u mapu svog WordPressa:
cd domains/example.com/public_html - Najprije pogledajte što bi se promijenilo, bez ikakvih izmjena:
wp search-replace 'http://example.com' 'https://example.com' --skip-columns=guid --dry-run
Za svaku tablicu vidite koliko bi zamjena bilo. - Ako je to u redu, pokrenite istu naredbu bez
--dry-run.
Nekoliko izbora u naredbi:
- Bez dodatne opcije WP-CLI radi na tablicama koje WordPress poznaje. Ako neki dodatak koristi vlastite tablice s istim prefiksom (primjerice
wp_), dodajte--all-tables-with-prefix. Opcija--all-tableszahvaća sve tablice u bazi podataka, pa i one druge web stranice koja se slučajno nalazi u njoj. --skip-columns=guidne dira stupacguidsa stalnim oznakama objava. WordPress preporučuje da ga nikada ne mijenjate, jer u suprotnom čitači feedova ponovno prikazuju stare objave kao nove.- Ako nešto pođe po zlu sa složenim postavkama,
--preciseradi sporije, ali temeljitije.
2. način: dodatak
Ako nemate Terminal ili SSH, koristite dodatak za pretraživanje i zamjenu koji podržava serijalizirane podatke. Više takvih nalazi se u direktoriju dodataka na wordpress.org. Pri odabiru pročitajte opis: u njemu mora pisati da ispravno obrađuje serijalizirane podatke. I ovdje najprije koristite probni način rada ako ga dodatak ima, a kada završite, uklonite dodatak. Pogledajte i Odabir, procjena i čišćenje WordPress dodataka.
http:// ili https:// ispred. Ako zamijenite samo example.com, promijenit ćete i adrese e-pošte poput info@example.com te druge tekstove u kojima se nalazi taj naziv. Pazite i na kosu crtu na kraju: ako https://example.com/ zamijenite s https://example.net, adrese se spajaju.Samo adresa WordPressa i adresa web stranice?
Ne možete li nakon promjene više ući u administraciju jer Vas WordPress šalje na pogrešnu adresu? Tada najprije prilagodite samo retke siteurl i home u tablici wp_options (prefiks wp_ kod Vas može biti drugačiji). To su obični tekstovi i smijete ih mijenjati u phpMyAdminu. Kako se to radi, pročitajte u Otvaranje i korištenje phpMyAdmina. Nakon toga ostatak obavite pomoću WP-CLI-ja ili dodatka.
Nakon završetka
- Ispraznite predmemoriju svog dodatka za predmemoriju i svog preglednika.
- Ako stranice daju pogrešku 404, jednom spremite pod Postavke > Stalne veze. Pogledajte Moja web stranica ne radi nakon prijenosa ili selidbe.
- Provjerite nekoliko stranica, svoj izbornik, logotip i jedan obrazac. Pritisnite F12 i u konzoli pogledajte ima li još poruka o miješanom sadržaju.
Daljnje čitanje
- wp search-replace na developer.wordpress.org (na engleskom)
- Ručna selidba WordPressa: datoteke, baza podataka i wp-config.php
Želite li naučiti više? Pohađajte besplatni WordPress tečaj, lekciju 3.2 www, preusmjeravanje i miješani sadržaj ili lekciju 9.5 Selidba WordPress web stranice.
