Căutare și înlocuire în baza de date WordPress
WordPress nu păstrează adresa site-ului dumneavoastră într-un singur loc. Aceasta apare în setări, dar și efectiv în articole, la imagini și în setările temelor, pluginurilor și widgeturilor. Prin urmare, dacă schimbați adresa, trebuie să o înlocuiți în întreaga bază de date. Aici aflați cum se face acest lucru în siguranță și de ce o simplă comandă SQL vă poate strica site-ul.
Când aveți nevoie de acest lucru?
- Site-ul dumneavoastră funcționa pe http și acum rulează pe https, iar vedeți conținut mixt (o pagină pe https care încarcă elemente prin http). Consultați și Fără lacăt sau „nesigur”: rezolvarea conținutului mixt.
- Vă mutați site-ul pe un alt domeniu sau de pe o adresă temporară pe domeniul dumneavoastră real.
- Ați realizat manual o copie pe o altă adresă, de exemplu un site de test.
Dacă clonați un site cu Installatron sau cu Website Manager, acesta ajustează singur adresele din copie. Consultați Clonarea și crearea unui mediu de test (staging). Dacă vă mutați doar la o altă găzduire cu același domeniu, nu trebuie modificat nimic.
De ce nu un simplu SQL REPLACE?
În phpMyAdmin puteți înlocui toate textele cu o singură comandă SQL. Nu faceți acest lucru pentru adrese. Multe setări sunt stocate serializat: PHP adaugă lungimea fiecărui text. Arată astfel:
s:27:"http://example.com/logo.png";
s:27 înseamnă: urmează un text de 27 de caractere. Dacă îl transformați în https://, textul are 28 de caractere, dar scrie în continuare 27. PHP nu mai poate citi valoarea, iar setarea dispare fără niciun avertisment. Veți vedea, de exemplu, un meniu gol, un logo dispărut sau widgeturi care lipsesc. De aceea, folosiți un instrument care actualizează aceste lungimi.
Mai întâi o copie de rezervă
Căutarea și înlocuirea se aplică imediat și nu au coș de gunoi. Realizați în prealabil un export al bazei de date, consultați Exportarea unei baze de date, sau creați cu un singur clic o copie de rezervă suplimentară în WebOké Backups, consultați WebOké Backups: vizualizarea, restaurarea sau descărcarea unei copii de rezervă.
Metoda 1: WP-CLI în Terminal sau prin SSH
WP-CLI este programul oficial de linie de comandă al WordPress. La noi îl folosiți ca și comanda wp în Terminalul din DirectAdmin sau prin SSH. Acesta este disponibil doar în pachetele cu SSH. Ce pachete sunt acestea aflați în Terminal în browserul dumneavoastră.
- Deschideți Terminalul și accesați directorul WordPress:
cd domains/example.com/public_html - Verificați mai întâi ce s-ar modifica, fără a schimba nimic:
wp search-replace 'http://example.com' 'https://example.com' --skip-columns=guid --dry-run
Vedeți pentru fiecare tabel câte înlocuiri ar avea loc. - Dacă rezultatul este corect, executați aceeași comandă fără
--dry-run.
Câteva opțiuni din comandă:
- Fără opțiuni suplimentare, WP-CLI lucrează pe tabelele cunoscute de WordPress. Dacă un plugin folosește tabele proprii cu același prefix (de exemplu
wp_), adăugați--all-tables-with-prefix. Opțiunea--all-tablesafectează toate tabelele din baza de date, inclusiv pe cele ale unui alt site care se află întâmplător în ea. --skip-columns=guidlasă neatinsă coloanaguidcu identificatorii ficși ai articolelor. WordPress recomandă să nu o modificați niciodată, altfel cititoarele de fluxuri afișează articolele vechi din nou ca fiind noi.- Dacă apar probleme cu setări complexe,
--precisefuncționează mai lent, dar mai temeinic.
Metoda 2: un plugin
Dacă nu aveți Terminal sau SSH, folosiți un plugin de căutare și înlocuire care acceptă date serializate. Există mai multe în directorul de pluginuri de pe wordpress.org. Când alegeți, citiți descrierea: trebuie să menționeze că procesează corect datele serializate. Și aici folosiți mai întâi modul de test, dacă pluginul îl are, și ștergeți pluginul după ce ați terminat. Consultați și Alegerea, evaluarea și curățarea pluginurilor WordPress.
http:// sau https:// în față. Dacă înlocuiți doar example.com, modificați și adrese de e-mail precum info@example.com și alte texte care conțin numele. Atenție și la bara oblică de la sfârșit: dacă înlocuiți https://example.com/ cu https://example.net, adresele se lipesc între ele.Doar adresa WordPress și adresa site-ului?
Nu mai puteți accesa panoul de administrare după o modificare, deoarece WordPress vă trimite la o adresă greșită? Atunci modificați mai întâi doar rândurile siteurl și home din tabelul wp_options (prefixul wp_ poate fi diferit în cazul dumneavoastră). Acestea sunt texte obișnuite, pe care le puteți modifica în phpMyAdmin. Cum se face acest lucru aflați în Deschiderea și utilizarea phpMyAdmin. Apoi faceți restul cu WP-CLI sau cu un plugin.
La final
- Goliți memoria cache a pluginului de cache și a browserului dumneavoastră.
- Dacă paginile afișează eroarea 404, salvați o dată la Setări > Legături permanente. Consultați Site-ul meu nu funcționează după încărcare sau mutare.
- Verificați câteva pagini, meniul, logo-ul și un formular. Apăsați F12 și verificați în consolă dacă mai există mesaje despre conținut mixt.
Lecturi suplimentare
- wp search-replace pe developer.wordpress.org (în engleză)
- Mutarea manuală a WordPress: fișiere, bază de date și wp-config.php
Doriți să aflați mai multe? Urmați cursul gratuit de WordPress, lecția 3.2 www, redirecționare și conținut mixt sau lecția 9.5 Mutarea unui site WordPress.
