WordPress przechowuje treść stron i wpisów w bazie danych MySQL, a nie w plikach PHP lub HTML.
Pliki na serwerze odpowiadają za logikę, szablony i media, ale sam tekst, tytuły, treść SEO i status publikacji znajdują się w tabelach bazy danych.
Ten artykuł wyjaśnia dokładnie: co trafia do bazy danych, co do plików i jak te elementy łączą się w gotową stronę WWW.
Jeśli administrujesz WordPressem, robisz migracje, kopie zapasowe lub optymalizujesz wydajność, ten podział ma kluczowe znaczenie.
Szybkie podsumowanie
- Treść stron i wpisów jest zapisana w tabeli wp_posts.
- Meta dane (SEO, pola ACF) są w tabeli wp_postmeta.
- Kategorie i tagi są przechowywane w wp_terms i wp_term_relationships.
- Media (obrazy, PDF) są plikami w katalogu wp-content/uploads.
- Motywy i wtyczki to pliki, nie baza danych.
- Adres URL, status publikacji, autor to dane z bazy, nie z plików.
- Kopia bazy danych to kopia treści strony.
Kontekst problemu
W praktyce wiele problemów z WordPressem wynika z błędnego założenia, że strona jest „zapisana w plikach”.
To prowadzi do niepełnych backupów, błędnych migracji i utraty treści po zmianie hostingu.
WordPress to system oparty o bazę danych – pliki są tylko warstwą wykonawczą i wizualną.
Jak WordPress przechowuje treść
Treść stron i wpisów: tabela wp_posts
Wszystkie strony i wpisy są rekordami w jednej tabeli – wp_posts.
Różnica między stroną a wpisem to wartość w kolumnie post_type.
- post – wpis blogowy
- page – strona statyczna
- product – produkt WooCommerce
Tytuł, treść, status i data publikacji
W wp_posts przechowywane są m.in.:
- post_title – tytuł strony
- post_content – główna treść
- post_status – szkic, opublikowany, prywatny
- post_date – data publikacji
Jeśli strona nie wyświetla się poprawnie, a wpis istnieje w bazie – problem jest w szablonie lub zapytaniu.
Pola dodatkowe i SEO: tabela wp_postmeta
Meta dane strony nie są trzymane w wp_posts.
ACF, Yoast SEO, Rank Math zapisują dane w wp_postmeta.
Każda para klucz-wartość to osobny rekord powiązany z ID wpisu.
Kategorie, tagi i struktura treści
Taksonomie są rozbite na kilka tabel:
- wp_terms – nazwy kategorii i tagów
- wp_term_taxonomy – typy taksonomii
- wp_term_relationships – powiązania z treścią
Zmiana kategorii to operacja na relacjach, nie na treści wpisu.
Media: pliki i database reference
Pliki graficzne są przechowywane fizycznie na serwerze:
- katalog wp-content/uploads/rok/miesiąc
Jednocześnie każdy plik ma wpis w wp_posts jako attachment.
Baza przechowuje informacje o pliku, ale nie sam plik.
Jak to działa w praktyce – krok po kroku
- Użytkownik wchodzi na adres URL.
- WordPress mapuje URL na rekord w wp_posts.
- Ładowane są meta dane z wp_postmeta.
- Motyw pobiera treść i wyświetla ją przez szablon.
- Do strony dołączane są pliki CSS, JS i media.
Jeśli baza danych jest uszkodzona – treść znika, nawet jeśli pliki istnieją.
Jeśli pliki motywu znikną – treść nadal jest w bazie, ale nie ma jak jej wyświetlić.
Najczęstsze błędy
- Backup tylko plików – utrata całej treści strony.
- Usunięcie wp_postmeta – zniknięcie SEO, ACF i ustawień.
- Ręczna edycja bazy bez kopii – trwałe uszkodzenie danych.
- Przenoszenie uploads bez bazy – puste obrazki na stronie.
- Zmiana prefiksu tabel bez aktualizacji – błędy połączenia.
- Mylenie stron z plikami HTML – błędne decyzje techniczne.
Rekomendacje i dobre praktyki
To podejście działa, jeśli zarządzasz stroną produkcyjną lub sklepem WooCommerce.
Unikaj ręcznych operacji na bazie, jeśli nie znasz struktury danych.
- Rób kopie plików i bazy danych razem.
- Przed migracją sprawdzaj wielkość i integralność bazy.
- Używaj narzędzi typu WP-CLI lub wtyczek migracyjnych.
- Nie usuwaj rekordów wp_posts bez analizy powiązań.
- Traktuj wp_postmeta jako integralną część treści.
- Testuj backup na środowisku staging.
Podsumowanie – co zrobić dalej
- Treść WordPressa jest w bazie danych.
- Pliki odpowiadają za wygląd i media.
- Backup bez bazy danych jest bezużyteczny.
- Migracja wymaga obu warstw.
Jeśli planujesz migrację, optymalizację lub automatyzację, zacznij od audytu bazy danych i struktury plików.
FAQ
Czy mogę odzyskać stronę mając tylko bazę danych?
Tak, treść stron i wpisów będzie dostępna.
Musisz jednak zainstalować WordPressa i motyw od nowa.
Czy WordPress zapisuje strony jako pliki HTML?
Nie. HTML jest generowany dynamicznie przy każdym żądaniu.
Wyjątkiem są strony cache lub statyczne generatory.
Gdzie jest zapisany URL strony?
Adres URL wynika z ustawień i slugów w bazie danych.
Konkretnie z kolumny post_name i reguł permalinków.
Czy usunięcie motywu usuwa treść?
Nie. Treść pozostaje w bazie.
Znika jedynie sposób jej prezentacji.
