Kako da pronađete i zamenite URL-ove i tekst u WordPress bazi - bez plugina Idi do glavnog sadržaja

Kako da pronađete i zamenite URL-ove i tekst u WordPress bazi – bez plugina

Postoji mnogo situacija kada je potrebno da pronađete i zamenite URL adrese ili tekst u bazi svog WordPress sajta. Često je to zato što prelazite sa jednog domena na drugi ili prebacujete svoj web sajt sa HTTP protokola na HTTPS.

Ponekad to može biti i neki drugi razlog, kao recimo zamena nekog internog ili eksternog linka na sajtu.

U svakom slučaju dobro je znati kako da uradite zamenu URL-a, pogotovo kako to da uradite bez upotrebe plugina.

Najbolji način da pronađete i zamenite sadržaj u vašoj WordPress bazi podataka je pokretanje SQL upita u phpMyAdmin-u ili shell komandnoj linijii.

Napomena: Pre nego što krenete u bilo kakvu izmenu, napravite rezervnu kopiju, kako samog WordPress sajta, tako i baze vašeg WordPress sajta.

Primeri promene domena i SSL protokola

Bilo da se radi o promeni naziva domena i/ili promeni sa HTTP protokola na HTTPS protokol, možete da koristite SQL funkciju replace, da biste zamenili bilo koje URL adrese u WordPress bazi podataka.

Evo i primera upita gde ćete pronaći i zameniti stari_domen.rs sa novi_domen.rs, što je korisno ako migrirate svoj WordPress sajt na drugi domen. Takođe možete koristiti ove upite da zamenite linkove koje nisu https, npr. http://nazivdomena.rs sa https://nazivdomena.rs.

Postoji nekoliko različitih tabela koje treba da ažurirate ako menjate naziv domena:

Tabela: wp_options

wp_options – je WordPress konfiguraciona tabela, koja sadrži URL vašeg sajta u poljima home i siteurl. Upitom ispod, radimo izmenu sa stari_domen.rs na novi_domen.rs:

UPDATE wp_options SET option_value = replace(option_value, 'stari_domen.rs', 'novi_domen.rs');

WHERE option_name = 'home' OR option_name = 'siteurl';

Tabela: wp_posts

wp_posts – sadrži sav sadržaj vaših objava u polju post_content. Ako imate bilo kakve interne permalinkove u svojim postovima koje vode ka drugim postovima, moraćete da zamenite domen i u svim permalinkovima. Takođe u okviru ove tabele nalazi se polje guid, koje sadrži permalink posta. Promenite ovo polje samo ako znate šta radite (pogledajte dole).

UPDATE wp_posts SET post_content = replace(post_content, 'stari_domen.rs', 'novi_domen.rs');

Globalni jedinstveni identifikator (Global Unique Identifier) pojavljuje se u ovom polju u obliku URL adrese. Zvanična dokumentacija kaže da nije predviđeno da menjate ovo polje, čak i ako se URL adresa vašeg sajta promeni. Zamislite GUID kao jedinstveni heš. Ako ga promenite, to će značiti da će feed reader-i odjednom ponovo prikazati sav vaš sadržaj u reader-u korisnika kao novi sadržaj.

Tabela: wp_postmeta

wp_postmeta – sadrži sve vaše atribute i prilagođena polja, uključujući Advanced Custom Fields (ACF) u polju meta_value. Ako imate permalinkove u svojim custom poljima, moraćete da ih zamenite ovde.

UPDATE wp_postmeta SET meta_value = replace(meta_value, 'stari_domen.rs', 'novi_domen.rs');

Tabela: wp_comments

wp_comments – sadrži sve vaše komentare na postove, koji mogu da sadrže permalinkove do drugih postova na vašem sajtu.

Tabela: wp_links

U nekim starijim tekstovima na ovu temu možda ćete pronaći predloge za promenu polja link_url u tabeli wp_links. Ova sada zastarela tabela je korišćena za WordPress Links funkciju, koja je ukinuta u decembru 2012. Možete da ignorišete ovo polje osim ako vaša WordPress instalacija nije zaista stara.

Zamenite tekst u postovima

Recimo da rebrendirate i menjate naziv svoje kompanije iz „Stari Naziv“ u „Novi Naziv“ . I u ovom slučaju možete koristiti SQL funkciju replace na potpuno isti način.

Postoji nekoliko različitih tabela koje treba da ažurirate ako želite da zamenite sve instance teksta:

Tabela: wp_options

wp_options – ovo je WordPress konfiguraciona tabela, koja sadrži naziv vašeg sajta u polju blogname.

UPDATE wp_options SET option_value = replace(option_value, 'Stari Naziv', 'Novi Naziv');

WHERE option_name = 'blogname';

Tabela: wp_posts

wp_posts – sadrži sav sadržaj vaših postova u polju post_content.

UPDATE wp_posts SET post_content = replace(post_content, 'Stari Naziv', 'Novi Naziv');

Tabela: wp_postmeta

wp_postmeta – sadrži sve vaše atribute i custom polja, uključujući Advanced Custom Fields (ACF) u polju meta_value.

Ako imate bilo kakav sadržaj u svojim custom poljima, moraćete da zamenite i tekst i u njima.

UPDATE wp_postmeta SET meta_value = replace(meta_value, 'Stari Naziv', 'Novi Naziv');

Tabela: wp_comments

wp_comments – sadrži sve vaše komentare na postove, koji mogu sadržati instance teksta koji želite da zamenite.

UPDATE wp_comments SET comment_content = replace(comment_content , 'Stari Naziv', 'Novi Naziv');

Ažurirajte bazu podataka

Sada kada razumete koje upite da pokrenete, proći ćemo kroz nekoliko različitih metoda o tome kako da pokrenete svoje upite.

Metod 1 – phpMyAdmin

Najlakši način da pronađete i zamenite tekst u vašoj WordPress bazi podataka bez potrebe za instaliranjem plugina je preko phpMyAdmin-a. Većina shared hosting paketa obezbeđuje aplikaciju phpMyAdmin putem koje možete da administrirate svoje baze podataka.

Prijavite se na phpMyAdmin i kliknite na ime svoje baze podataka u prozoru sa leve strane.

zamenite url

Sada izaberite tab SQL i nalepite pripremljene upite.

zamenite url

Napomena: Kako smo već na početku pomenuli, napravite rezervnu kopiju vaše baze podataka pre pokretanja ovih upita jer ih naknadno ne možete poništiti!

Sada kliknite na Go i vaš upit bi trebalo da se pokrene.

Metod 2 – komandna linija

Ako imate pristup shell-u svog web servera, možete pokrenuti upite za bazu podataka direktno u komandnoj liniji.

Ako koristite MySQL, prijavite se koristeći kredencijale baze podataka svog WordPress sajta.

mysql -u root -p database_name

Nakon ove komande bićete upitani od strane prompta da unesete root lozinku. Ukoliko ste uspešno uneli Vašu lozinku, dobićete mysql prompt, kao na slici ispod:

Kada vidite mysql> prompt, unesite svoje SQL upite i pritisnite ENTER.

mysql> UPDATE wp_options SET option_value = replace(option_value, 'stari_domen.rs', 'novi_domen.rs');

WHERE option_name = 'home' OR option_name = 'siteurl';

Query OK, 0 rows affected (0.00 sec)

Rows matched: 2 Changed: 0 Warnings: 0

mysql> UPDATE wp_posts SET post_content = replace(post_content, 'http://novidomen.rs', 'https://novidomen.rs');

Query OK, 0 rows affected (0.08 sec)

Rows matched: 354 Changed: 0 Warnings: 0

mysql> UPDATE wp_postmeta SET meta_value = replace(meta_value, 'http://novidomen.rs', 'https://novidomen.rs');

Query OK, 0 rows affected (0.01 sec)

Rows matched: 22 Changed: 0 Warnings: 0

mysql> UPDATE wp_comments SET comment_content = replace(comment_content , 'http://novidomen.rs', 'https://novidomen.rs');

Query OK, 0 rows affected (0.01 sec)

Rows matched: 10 Changed: 0 Warnings: 0

Kada završite, izađite iz MySQL-a:

mysql> exit;

U ovom primeru smo koristili username “root”, dok će naziv vašeg korisnika biti sigurno drugačiji.

Zaključak

Kao što ste videli ručna pretraga i zamena URL-a ili teksta na vašem WordPress web sajtu nije toliko teška kako se to možda na prvi pogled čini. Ipak, koji god od navedenih metoda da koristite, nikako ne zaboravite da svaki put pre bilo kakve izmene uradite backup svog sajta ili bar njegove baze. Ovo je inače nešto što redovno savetujemo kod bilo kakvih ozbiljnijih akcija na sajtu, ali nije na odmet da u ovom slučaju posebno skrenemo pažnju na to.

Nenad Mihajlović


Ostavite odgovor