Strona główna  /  Instalacja i migracja  /  Jak zmienić prefiks tabeli w WordPress?

✦ AI
Ekran komputera z kodem SQL i podświetloną komendą zmiany prefiksu tabeli w bazie danych WordPress.

Jak zmienić prefiks tabeli w WordPress?

Zmiana prefiksu tabel WordPress wymaga wykonania kopii zapasowej, zmiany nazw tabel w bazie danych oraz aktualizacji pliku wp-config.php i wybranych rekordów w tabelach options oraz usermeta. Błąd w którymkolwiek z tych miejsc może zablokować stronę albo dostęp do panelu administracyjnego.

Dlaczego zmienia się prefiks tabel WordPress?

Domyślny prefiks tabel WordPress to wp_. Jego zmiana utrudnia automatycznym skryptom odgadnięcie nazw tabel, takich jak wp_users czy wp_options. Jest to forma Security by Obscurity, czyli dodatkowa warstwa ochrony polegająca na ukryciu szczegółów struktury systemu.

Zmiana prefiksu nie usuwa luk w WordPressie ani we wtyczkach. Nie zastępuje aktualizacji, silnych haseł, uwierzytelniania dwuskładnikowego czy zapory aplikacyjnej. Może jednak utrudnić proste, zautomatyzowane próby wykorzystania podatności SQL Injection.

Przygotowanie i kopia zapasowa

Przed rozpoczęciem wykonaj pełną kopię bazy danych. Możesz użyć funkcji backupu w panelu hostingu, eksportu w phpMyAdmin albo sprawdzonego narzędzia do tworzenia kopii WordPressa.

Nie rozpoczynaj zmiany bez możliwości przywrócenia bazy. Operacja obejmuje wszystkie tabele oraz dane używane przez WordPress. Na stronie produkcyjnej najlepiej najpierw przeprowadzić ją na kopii testowej.

Przygotuj także dostęp do:

  • pliku wp-config.php przez FTP, SFTP, WebFTP lub menedżer plików hostingu
  • bazy danych WordPress w phpMyAdmin
  • kopii zapasowej plików i bazy danych
  • panelu hostingu, jeśli po zmianie trzeba będzie przywrócić dane

Jak zmienić prefiks tabel WordPress krok po kroku?

W przykładach stary prefiks to wp_, a nowy to nowy_prefiks_. Zastąp te wartości własnymi nazwami. Nowy prefiks powinien zawierać litery, cyfry i podkreślenia, a jego końcowe podkreślenie ułatwia odróżnienie prefiksu od nazwy tabeli.

  1. Zmień wartość w pliku wp-config.php – otwórz plik znajdujący się w głównym katalogu WordPressa i znajdź wpis $table_prefix = 'wp_';. Zmień go na $table_prefix = 'nowy_prefiks_';, ale jeszcze nie usuwaj kopii starego pliku.
  2. Zmień nazwy tabel w phpMyAdmin – wybierz bazę danych WordPress, przejdź do zakładki SQL i wykonaj polecenia RENAME TABLE. Przykładowy zestaw dla standardowych tabel wygląda tak:
RENAME TABLE
  `wp_commentmeta` TO `nowy_prefiks_commentmeta`,
  `wp_comments` TO `nowy_prefiks_comments`,
  `wp_links` TO `nowy_prefiks_links`,
  `wp_options` TO `nowy_prefiks_options`,
  `wp_postmeta` TO `nowy_prefiks_postmeta`,
  `wp_posts` TO `nowy_prefiks_posts`,
  `wp_termmeta` TO `nowy_prefiks_termmeta`,
  `wp_terms` TO `nowy_prefiks_terms`,
  `wp_term_relationships` TO `nowy_prefiks_term_relationships`,
  `wp_term_taxonomy` TO `nowy_prefiks_term_taxonomy`,
  `wp_usermeta` TO `nowy_prefiks_usermeta`,
  `wp_users` TO `nowy_prefiks_users`;

Jeżeli baza zawiera tabele dodane przez wtyczki, sprawdź ich nazwy i zmień również te, które korzystają ze starego prefiksu. Przed uruchomieniem polecenia upewnij się, że każda nazwa po prawej stronie jest unikalna i nie istnieje już w bazie.

  1. Zaktualizuj rekordy zawierające stary prefiks – po zmianie nazw tabel WordPress nadal może przechowywać odwołania do wp_ w wartościach pól. Wykonaj zapytania na nowych tabelach:
UPDATE `nowy_prefiks_usermeta`
SET `meta_key` = REPLACE(`meta_key`, 'wp_', 'nowy_prefiks_')
WHERE `meta_key` LIKE 'wp_%';

UPDATE `nowy_prefiks_options`
SET `option_name` = REPLACE(`option_name`, 'wp_', 'nowy_prefiks_')
WHERE `option_name` LIKE 'wp_%';

Zapytania obejmują między innymi klucze uprawnień użytkowników, takie jak wp_capabilities i wp_user_level, oraz definicję ról wp_user_roles. Po wykonaniu zmian sprawdź, czy w tabelach nie pozostały rekordy z poprzednim prefiksem.

Co sprawdzić po zmianie?

Otwórz stronę i spróbuj zalogować się do panelu WordPress. Wyczyść pamięć podręczną, a następnie sprawdź wpisy, strony, media, użytkowników i działanie najważniejszych wtyczek.

Jeśli panel nie działa albo logowanie kończy się pętlą, przejdź przez tę listę kontrolną:

  • Sprawdź, czy wartość $table_prefix w wp-config.php jest identyczna z początkiem nazw tabel w bazie.
  • Sprawdź, czy tabela nowy_prefiks_options zawiera klucz nowy_prefiks_user_roles.
  • Sprawdź w tabeli nowy_prefiks_usermeta, czy istnieją klucze nowy_prefiks_capabilities i nowy_prefiks_user_level.
  • Sprawdź, czy w zapytaniach użyto właściwego starego i nowego prefiksu, wraz z końcowym znakiem podkreślenia.
  • Jeśli pojawia się błąd połączenia z bazą, porównaj nazwę bazy, dane dostępu oraz wartość $table_prefix z rzeczywistymi nazwami tabel.

Niektóre starsze lub wadliwie napisane wtyczki mogą mieć na sztywno wpisane nazwy zaczynające się od wp_. Jeśli po zmianie przestanie działać konkretna funkcja, sprawdź jej dokumentację lub kod. Gdy nie uda się ustalić przyczyny, przywróć kopię zapasową i powtórz operację po wykonaniu testów na środowisku staging.

Najważniejsza zasada jest prosta: nowy prefiks musi być spójny w nazwach tabel, pliku wp-config.php oraz rekordach przechowywanych w options i usermeta. Dopiero wtedy WordPress będzie mógł poprawnie odczytać konfigurację i uprawnienia użytkowników.

Redakcja wpinternals.pl

WordPressa znamy od kuchni – budujemy na nim strony, migrujemy serwisy i optymalizujemy ich wydajność. Piszemy o wtyczkach, motywach, hostingu i bezpieczeństwie tak, by poradzili sobie także początkujący. Dbamy o to, by Twoja strona była szybka, stabilna i bezpieczna.

Może Cię również zainteresować

Potrzebujesz więcej informacji?