
🔍 Wyszukiwanie i zamiana w phpMyAdmin: jak zastąpić tekst i URL w bazie danych WordPress
💡 Szybki przegląd:
- czym jest wyszukiwanie i zamiana w phpMyAdmin i kiedy jest potrzebna;
- krok po kroku zapytanie SQL do zamiany tekstu w całej bazie WordPress;
- jak masowo zamienić stare adresy URL na nowe przez phpMyAdmin;
- przegląd dwóch wtyczek alternatywnych, Better Search Replace i Search & Replace.
Czym jest wyszukiwanie i zamiana w phpMyAdmin i do czego to potrzebne
Proszę sobie wyobrazić: zmienili Państwo domenę, przemianowali markę lub zaktualizowali strukturę bezpośrednich odnośników. Gdzieś w czeluściach bazy danych WordPress zostały setki starych wzmianek, w postach, metapolach, ustawieniach motywów. Otwierać każdy wpis i poprawiać ręcznie? Na stronie o pięciu podstronach, być może. Przy dwustu to już stracony dzień.
phpMyAdmin to interfejs webowy do zarządzania MySQL, który jest dostarczany razem z cPanel praktycznie każdego hostingu. Za jego pomocą wykonują Państwo zapytanie SQL, które w jednym przebiegu znajduje i zamienia wskazany ciąg we wszystkich rekordach bazy danych. Żadnych wtyczek, żadnego zbędnego kodu, tylko Państwo, przeglądarka i poprawne zapytanie.
Jednak ta metoda ma pewien niuans: błąd w składni może naruszyć niewłaściwe dane. Właśnie dlatego rozłożymy zapytania na czynniki pierwsze, a na końcu pokażemy parę wtyczek, które eliminują ryzyko ręcznej pracy i dają podgląd przed zamianą.
Jak znaleźć i zamienić tekst przez phpMyAdmin
Najczęstszy scenariusz: zamienić słowo lub frazę we wszystkich postach naraz. Na przykład starą nazwę firmy na nową, przestarzały termin lub uszkodzony email. Do tego potrzebne jest jedno zapytanie UPDATE w phpMyAdmin.
Krok 1: proszę zalogować się do phpMyAdmin przez cPanel
Proszę otworzyć cPanel swojego hostingu, znaleźć sekcję „Bazy danych" i kliknąć ikonę phpMyAdmin. Proszę się zalogować, zazwyczaj login i hasło są takie same jak do cPanel.
Krok 2: proszę wybrać bazę danych witryny
Po zalogowaniu po lewej stronie pojawi się lista baz danych. Proszę kliknąć tę, która dotyczy Państwa witryny WordPress. Jeśli nie pamiętają Państwo nazwy, proszę sprawdzić w pliku wp-config.php: wiersz define('DB_NAME', 'имя_базы').
Krok 3: proszę przejść na zakładkę SQL
W górnym pasku narzędzi proszę kliknąć przycisk SQL, otworzy się okno do wprowadzenia zapytania.

Krok 4: proszę wprowadzić zapytanie SQL do zamiany tekstu
Podstawowa składnia wygląda tak:
1 UPDATE table_name SET field_name = 2 REPLACE(field_name, 'что_ищем', 'на_что_меняем');
Do zamiany tekstu we wszystkich postach WordPress zapytanie będzie miało następującą postać:
1 UPDATE wp_posts SET post_content = 2 REPLACE(post_content, 'старый текст', 'новый текст');
Rozbiór na części: UPDATE wp_posts, pracujemy z tabelą postów; SET post_content, zmieniamy zawartość pola post_content; REPLACE(post_content, 'A', 'B'), funkcja szuka podciągu A i zamienia go na B. Ważne: prefiks tabel może nie być wp_, proszę sprawdzić w wp-config.php wartość $table_prefix.
⚠️ Przed wykonaniem koniecznie proszę zrobić kopię zapasową bazy danych. W cPanel służy do tego sekcja Backup lub proszę użyć wtyczki takiej jak UpdraftPlus. Zapytanie SQL jest nieodwracalne, nie ma przycisku „cofnij".
Krok 5: proszę wykonać zapytanie
Proszę kliknąć przycisk „Go" (lub „Wykonaj") w prawym dolnym rogu. phpMyAdmin wykona zapytanie i pokaże komunikat z liczbą zmodyfikowanych wierszy, na przykład „Zmodyfikowano wierszy: 47". Oznacza to, że 47 rekordów zawierało szukany tekst i zostało zaktualizowanych.

Gotowe. Proszę przejść się po witrynie i sprawdzić kilka stron, stary tekst powinien zostać zastąpiony.
Jak zastąpić URL w bazie danych WordPress przez phpMyAdmin
Zastępowanie adresów URL jest trudniejsze niż zamiana tekstu, ponieważ adresy nie są przechowywane w jednej tabeli, lecz rozrzucone po kilku. Oto gdzie szukać:

- Posty i strony: pole
post_contentw tabeliwp_posts - Metapola (pola niestandardowe):
meta_valuewwp_postmeta - Ustawienia motywów i wtyczek:
option_valuewwp_options - Komentarze:
comment_contentwwp_comments - Menu (stary menedżer odnośników):
link_urlilink_imagewwp_links - Metadane użytkowników:
meta_valuewwp_usermeta
Aby objąć wszystko za jednym razem, proszę wykonać następujący zestaw zapytań (kopiować po jednym i klikać „Wykonaj" po każdym):
1 UPDATE wp_options SET option_value = 2 REPLACE(option_value, 'http://old-domain.com', 'https://new-domain.com') 3 WHERE option_name = 'home' OR option_name = 'siteurl'; 4 5 UPDATE wp_posts SET post_content = 6 REPLACE(post_content, 'http://old-domain.com', 'https://new-domain.com'); 7 8 UPDATE wp_postmeta SET meta_value = 9 REPLACE(meta_value, 'http://old-domain.com', 'https://new-domain.com'); 10 11 UPDATE wp_comments SET comment_content = 12 REPLACE(comment_content, 'http://old-domain.com', 'https://new-domain.com'); 13 14 UPDATE wp_links SET link_url = 15 REPLACE(link_url, 'http://old-domain.com', 'https://new-domain.com'); 16 17 UPDATE wp_usermeta SET meta_value = 18 REPLACE(meta_value, 'http://old-domain.com', 'https://new-domain.com');
⚠️ Jeszcze raz: przed uruchomieniem, pełna kopia zapasowa. Jeśli witryna używa danych zserializowanych (a robi to większość motywów i wtyczek), prosta zamiana tekstowa może uszkodzić strukturę. W takim przypadku lepiej skorzystać z wtyczek z następnej sekcji, potrafią one poprawnie obsługiwać serializację.
Wtyczki do wyszukiwania i zamiany w WordPress
Ręczna metoda przez phpMyAdmin jest szybka, ale niebezpieczna dla początkujących. Wtyczki rozwiązują dwa główne problemy: dają podgląd przed zamianą (dry run) i poprawnie działają z danymi zserializowanymi. Przyjrzyjmy się dwóm sprawdzonym opcjom.
Better Search Replace

Better Search Replace to najpopularniejsza bezpłatna wtyczka do tego zadania: ponad milion aktywnych instalacji. Została opracowana na bazie otwartego skryptu interconnect/it Search Replace DB i wykorzystuje natywne funkcje WordPressa, a nie surowe zapytania SQL.
Jak pracować z wtyczką:
- Proszę ją zainstalować i aktywować z sekcji „Wtyczki → Dodaj nową".
- Przejść do „Narzędzia → Better Search Replace".
- W polu „Search for" wpisać szukany tekst lub URL.
- W polu „Replace with", to, na co zamieniamy.
- W bloku „Select tables" wybrać potrzebne tabele (lub wszystkie).
- Włączyć „Run as dry run", to przebieg testowy bez rzeczywistej zamiany. Wtyczka pokaże, ile dopasowań znaleziono i w których tabelach.

Po sprawdzeniu proszę wyłączyć „Dry run" i uruchomić zamianę ponownie, tym razem już z rzeczywistym zapisem zmian.
Zaleta: poprawnie obsługuje dane zserializowane, URL nie „rozjedzie się" po zamianie. Wada: nie wykonuje automatycznej kopii zapasowej przed zamianą (proszę zrobić ją samodzielnie, na przykład tym samym UpdraftPlus).
Cena: bezpłatnie.
🔗 Better Search Replace na WordPress.org
Search & Replace

Search & Replace od zespołu WP Media, alternatywa z wbudowaną kopią zapasową. Przed zamianą wtyczka potrafi utworzyć zrzut bazy danych i go zapisać. Jeśli coś pójdzie nie tak, przywraca Pan/Pani z kopii zapasowej dwoma kliknięciami.
Dodatkowe możliwości:
- zamiana domeny/URL jednym kliknięciem (osobna zakładka „Replace Domain / URL");
- obsługa CSV do zamiany wsadowej (format: „czego szukamy; na co zmieniamy");
- zmiana prefiksu tabel;
- obsługa multisite.
Wtyczka ma ponad 100 000 aktywnych instalacji i ocenę 4.3. Oficjalnie nie była testowana z najnowszymi wersjami WordPressa, ale opinie użytkowników potwierdzają stabilne działanie na WP 6.8 z PHP 8.2.
Minus: interfejs jest mniej intuicyjny niż w Better Search Replace, próg wejścia jest nieco wyższy.
Cena: bezpłatnie.
🔗 Search & Replace na WordPress.org
Co wybrać: wtyczkę czy phpMyAdmin?
Krótka wskazówka: zmienia Pan/Pani 1-2 słowa w tekście postów i zna składnię SQL, phpMyAdmin jest szybszy. Zmienia Pan/Pani domenę, pracuje z danymi serializowanymi lub nie chce dotykać bazy ręcznie, proszę zainstalować Better Search Replace i zrobić dry run. Potrzebny jest wbudowany backup i zamiana wsadowa, Search & Replace.
⁉️🤔 Często zadawane pytania
Czy można cofnąć zamianę po wykonaniu zapytania SQL?
Nie, zapytanie SQL w phpMyAdmin jest nieodwracalne. Właśnie dlatego przed każdą zamianą obowiązkowa jest pełna kopia zapasowa bazy danych. Proszę ją wykonać przez cPanel (sekcja Backup → Download MySQL Database) lub wtyczką UpdraftPlus. Z kopią zapasową zawsze można przywrócić bazę do stanu „sprzed".
Czym są dane zserializowane i dlaczego prosta zamiana URL je psuje?
Serializacja to sposób pakowania złożonych struktur (tablic, obiektów) w ciąg znaków do przechowywania w bazie. WordPress używa jej do ustawień motywów, danych wtyczek i widżetów. Ciąg
s:26:"http://old-domain.com"oznacza „ciąg o długości 26 znaków". Jeśli zamieni Pan/Pani domenę na krótszą lub dłuższą, długość ws:26przestanie odpowiadać rzeczywistości i WordPress nie będzie mógł odczytać danych. Wtyczki (Better Search Replace, Search & Replace) przeliczają długość automatycznie. Bezpośrednia zamiana SQL, nie.
Czy koniecznie trzeba używać phpMyAdmin, czy można przez WP-CLI?
WP-CLI to doskonała alternatywa, jeśli ma Pan/Pani dostęp przez SSH. Polecenie
wp search-replace 'старый-домен' 'новый-домен'robi to samo, ale z automatyczną obsługą serializacji. Jest to nawet bezpieczniejsze niż phpMyAdmin, WP-CLI działa przez API WordPressa, a nie bezpośrednio z MySQL. Jednak nie wszystkie hostingi dają dostęp SSH w tanich planach, phpMyAdmin jest dostępny praktycznie zawsze.
Czy można zamienić tylko w określonych wpisach, a nie w całej bazie?
Tak, proszę dodać do zapytania SQL warunek
WHERE. Na przykład, aby zamienić tekst tylko we wpisach z określonej kategorii: najpierw proszę znaleźć ID kategorii, a następnie:
1 UPDATE wp_posts SET post_content = 2 REPLACE(post_content, 'старое', 'новое') 3 WHERE ID IN ( 4 SELECT object_id FROM wp_term_relationships WHERE term_taxonomy_id = 12 5 );
Ale znacznie prościej jest wykonać pełną zamianę z dry run w Better Search Replace, wtyczka pokaże tabelę i liczbę dopasowań, a Pan/Pani ręcznie odznaczy niepotrzebne tabele.
Co robić, jeśli strona przestała się otwierać po zamianie URL?
Po pierwsze, nie panikować. Po drugie, przywrócić bazę z kopii zapasowej (wykonał Pan/wykonała Pani kopię zapasową?). Po trzecie, prawdopodobna przyczyna: uszkodzone dane zserializowane. Proszę użyć wtyczki Better Search Replace, jest ona specjalnie zaprojektowana do zamiany domen i poprawnie obsługuje serializację. Po przywróceniu bazy proszę uruchomić zamianę za jej pomocą.
Którą metodę wyszukiwania i zamiany wybrać: podsumowanie
Wybór zależy od trzech czynników: co Pan/Pani zmienia, jak duża jest strona i jaki jest Pana/Pani poziom komfortu z SQL.
- Tekst w kilku wpisach → phpMyAdmin z
UPDATE wp_posts. Szybko, ale bez podglądu. - Pełna zmiana domeny lub przejście na HTTPS → Better Search Replace. Dry run pokaże wszystkie objęte wiersze przed rzeczywistą zamianą, a wbudowana obsługa serializacji uchroni przed uszkodzonymi danymi. To złoty standard dla migracji.
- Potrzebny wbudowany backup → Search & Replace. Tworzy zrzut bazy przed zamianą i potrafi go przywrócić.
Główna zasada pozostaje niezmienna: kopia zapasowa, kopia zapasowa i jeszcze raz kopia zapasowa, przed każdym dotknięciem bazy danych. Jedno polecenie UPDATE bez kopii zapasowej może położyć stronę, a z kopią jest to po prostu narzędzie pracy, które oszczędza godziny rutyny.
1



