Kompletny przewodnik po bazie danych WordPress
Opublikowany: 2022-02-09U podstaw WordPressa jest CMS (system zarządzania treścią). Aby zarządzać treścią, musi mieć możliwość jej przechowywania. WordPress robi to za pomocą folderów i plików oraz bazy danych. System plików WordPress omówiliśmy wcześniej w osobnym artykule; tym razem skupimy się na bazie danych.
W tym artykule przyjrzymy się bazie danych WordPress, jej strukturze i działaniu każdego pola. Zawarliśmy również krótką lekcję historii dotyczącą MySQL. Wskazówka – My w MySQL nie oznacza, że należy do Ciebie; Mój jest rzeczywistą osobą, ale kto? – Czytaj dalej, aby się dowiedzieć.
Spis treści
- (Bardzo) krótka historia SQL, MySQL i MariaDB
- Jak uzyskać dostęp do bazy danych WordPress
- phpMyAdmin
- Plesk/cPanel
- Klient SSH/MySQL/MariaDB
- Wtyczki WordPress
- Struktura bazy danych WordPress
- Struktura tabeli
- wp_commentmeta
- wp_comments
- wp_linki
- wp_options
- wp_postmeta
- wp_posts
- wp_terms
- wp_termmeta
- wp_term_relationships
- wp_term_taksonomia
- wp_usermeta
- wp_users
- Struktura tabeli
(Bardzo) krótka historia SQL, MySQL i MariaDB
WordPress używa RDBMS o nazwie MySQL. Technicznie rzecz biorąc, jest oparty na MySQL, ponieważ coraz częściej zamiast MySQL używa się MariaDB. SQL oznacza Structured Query Language i jest językiem, którego używamy do interakcji z bazą danych – a nie samą bazą danych.
MySQL odegrał znaczącą rolę w rozwoju Internetu, jaki znamy dzisiaj. Wprowadzony po raz pierwszy w 1995 roku jako alternatywa dla produktów oferowanych przez Microsoft i Oracle, szybko stał się preferowanym złotym standardem RDBMS.
Historia MySQL jest barwna, ponieważ została przejęta przez Sun Microsystems, a następnie Oracle (Oracle przejęła wraz z nią Sun Microsystems i MySQL).
W odpowiedzi na przejęcie MySQL przez Oracle, Monty Widenius, pierwotny twórca MySQL, podzielił MySQL na MariaDB, którą nazwał na cześć swojej córki Marii. (Co ciekawe, MySQL nosi imię drugiej córki Monty'ego – My). Z biegiem czasu pojawiły się różnice między MariaDB i MySQL; jednak obie pozostają wymienne w wielu scenariuszach, w tym w bazach danych WordPress.
W rzeczywistości w wielu przypadkach MariaDB jest uważana za bezpośrednią alternatywę dla MySQL. Oznacza to, że możesz odinstalować MySQL, zamiast tego zainstalować MariaDB i kontynuować pracę tak, jakby nic się nie zmieniło. To powiedziawszy, MariaDB może zaoferować poprawę wydajności w niektórych sytuacjach, a także oferuje szerszą kompatybilność, na przykład, z silnikami pamięci masowej.
Należy zauważyć, że MySQL pozostaje bezpłatny i jest udostępniany w systemie podwójnej licencji. W wielu przypadkach MySQL jest używany w odniesieniu do baz danych, które są MySQL lub MariaDB.
Jak uzyskać dostęp do bazy danych WordPress
Dostępnych jest kilka różnych opcji łączenia się z bazą danych WordPress. Dostępna metoda lub metody będą w dużej mierze zależeć od rodzaju hostingu WordPress, z którego korzystasz. Jeśli nie masz pewności, jak skonfigurowany jest serwer, skontaktuj się z dostawcą usług hostingowych lub administratorem systemu. Tak czy inaczej, opcje mogą obejmować;
phpMyAdmin
phpMyAdmin to ulubione narzędzie, ponieważ pozwala nam łączyć się z bazą danych za pośrednictwem internetowego interfejsu GUI. phpMyAdmin musi być zainstalowany na tym samym serwerze, na którym znajduje się baza danych, a wielu dostawców hostingu oferuje phpMyAdmin od razu po wyjęciu z pudełka.
Plesk/cPanel
Plesk i cPanel to dwie platformy paneli sterowania, które pełnią podobną funkcję – interfejs użytkownika ułatwiający zarządzanie serwerem. Oczywiście istnieją pewne kluczowe różnice, w tym obsługiwane technologie i systemy operacyjne. Tak czy inaczej, pozwalają nam również na dostęp do baz danych, choć w nieco inny sposób.
Klient SSH/MySQL/mariaDB
SSH to mniej przyjazny dla użytkownika sposób łączenia się z bazą danych, oferujący CLI (interfejs wiersza poleceń) zamiast GUI. Z tego powodu zalecane jest głębsze zrozumienie poleceń SQL. Protokół SSH musi być jawnie skonfigurowany na tym samym serwerze, na którym znajduje się baza danych, przed połączeniem się z nią.
Wtyczki
Możesz także użyć wtyczek WordPress, aby uzyskać dostęp do swojej bazy danych WordPress. Za pomocą wtyczki możesz uzyskać dostęp do bazy danych bezpośrednio z konsoli administratora WordPress. Tutaj musisz upewnić się, że wybrałeś wtyczkę od renomowanego dostawcy i postępować zgodnie ze wszystkimi obowiązującymi najlepszymi praktykami, aby zapewnić bezpieczeństwo danych. Jeśli nie masz pewności, którą wtyczkę wybrać, przeczytaj nasz przewodnik, jak wybrać najlepsze wtyczki do swojej witryny WordPress.
Struktura bazy danych WordPress
Baza danych WordPressa składa się z 12 tabel. Każda tabela domyślnie zaczyna się od przedrostka wp_; można to jednak zmienić podczas początkowej instalacji i konfiguracji. Zmiana prefiksu jest ogólnie zalecana ze względów bezpieczeństwa WordPress, zwłaszcza jeśli planujesz lub masz już wiele instalacji na tym samym serwerze.
12 tabel, które tworzą bazę danych WordPress, są następujące (wymienione w kolejności alfabetycznej):
- wp_commentmeta
- wp_comments
- wp_linki
- wp_options
- wp_postmeta
- wp_posts
- wp_terms
- wp_termmeta
- wp_term_relationships
- wp_term_taksonomia
- wp_usermeta
- wp_users
Przejrzymy teraz każdą tabelę indywidualnie i przyjrzymy się, jakie dane przechowuje i jej wewnętrzną strukturę.
Struktura tabeli
Zanim przejdziemy do szczegółów każdej tabeli, warto poświęcić trochę czasu na przyjrzenie się jej strukturze. Jeśli nie znasz dokumentacji bazy danych, ta sekcja zawiera krótki kurs, który będzie pomocny w następnej sekcji. Z drugiej strony, jeśli dobrze znasz tabele SQL, możesz przejść dalej.
- Nazwa pola – To jest nazwa pola, którą znajdziesz w tabeli SQL
- Opis – umieściliśmy to, aby pomóc Ci zrozumieć, jakie dane zawiera pole
- Typ — jest to typ danych akceptowany przez pole. Liczby w nawiasach oznaczają sztywny limit liczby dopuszczalnych znaków, które możemy wprowadzić
- Null – nie jest jasne, dlaczego to pole jest obecnie używane
- Klucz — informuje nas, czy wpis jest kluczem, czy nie. Istnieją różne rodzaje kluczy, w tym:
- Podstawowy
- Podstawowy (część)
- Indeks
- Indeks (część)
- Wyjątkowy
- Wiele
- Domyślna — jeśli wpis ma wartość domyślną, tutaj zostanie wyświetlona wartość domyślna
- Uwagi – Wszelkie dodatkowe uwagi
wp_commentmeta
Tabela wp_commentsmeta przechowuje metadane związane z komentarzami. Komentarze są przechowywane oddzielnie w tabeli wp_comments. W tabeli znajdują się następujące pola:
Nazwa kolumny | Opis | Rodzaj | Zero | Klucz | Domyślna |
---|---|---|---|---|---|
meta_id | Jest to unikalny identyfikator wpisu. Zwiększa się automatycznie | bigint(20)niepodpisany | Podstawowy | ||
id_komentarza | To jest identyfikator komentarza, do którego odnoszą się metadane, który znajduje się w tabeli wp_comments | bigint(20)niepodpisany | Indeks | 0 | |
meta_klucz | Identyfikuje typ metadanych, do których odnosi się wpis | warchar(255) | tak | Indeks | Zero |
meta_wartość | To są rzeczywiste metadane | długi tekst | tak | Zero |
wp_comments
Tabela wp_comments przechowuje komentarze do postów. Metadane związane z komentarzami są przechowywane w tabeli wp_commentmeta. Tabela ma następujące kolumny:
Nazwa kolumny | Opis | Rodzaj | Zero | Klucz | Domyślna |
---|---|---|---|---|---|
komentarz_ID | Jest to unikalny identyfikator wpisu. Zwiększa się automatycznie | bigint(20) | Podstawowy | NA | |
comment_post_ID | To jest identyfikator postu, dla którego napisano komentarz, podany w tabeli wp_posts | bigint(20) | Indeks | 0 | |
komentarz_autor | To jest nazwisko autora, który napisał komentarz | maleńki tekst | |||
comment_author_email | To jest adres e-mail autora, który napisał komentarz | warchar(100) | Indeks | ||
comment_author_url | To jest adres URL strony autora, który napisał komentarz | warchar(200) | |||
comment_author_IP | To jest adres IP autora, który napisał komentarz | warchar(100) | |||
data_komentarza | To jest data i godzina opublikowania komentarza | data i godzina | 0000-00-00 00:00:00 | ||
comment_date_gmt | Jest to data i godzina opublikowania komentarza w czasie GMT (Greenwich Meridian Time) | data i godzina | Indeks i indeks Pt2 | 0000-00-00 00:00:00 | |
komentarz_treści | To jest aktualny komentarz, który pozostał | tekst | |||
comment_karma | Jest to dostępne do użytku przez wtyczki do celów zarządzania komentarzami | wewn(11) | |||
comment_approved | Wskazuje to, czy komentarz został zatwierdzony, czy nie | warchar(20) | Indeks Część 1 | 0 | |
comment_agent | Stąd pochodzi komentarz | warchar(255) | |||
typ_komentarza | To jest rodzaj pozostawionego komentarza | warchar(20) | |||
komentarz_rodzic | Jeśli komentarz jest odpowiedzią, to pole wskazuje komentarz rodzica | bigint(20)niepodpisany | Indeks | 0 | |
identyfikator użytkownika | Jeśli użytkownik komentujący jest zarejestrowany, będzie to jego identyfikator dostępny w wp_users | bigint(20)niepodpisany | 0 |
wp_linki
Ta tabela została pierwotnie stworzona do obsługi blogów, funkcji, która została porzucona począwszy od WordPress 3.5. Jest zachowany ze względu na zgodność z poprzednimi wersjami, ale nie jest już używany. Tabela ma następujące kolumny:
Nazwa kolumny | Opis | Rodzaj | Zero | Klucz | Domyślna |
---|---|---|---|---|---|
link_id | Jest to unikalny identyfikator wpisu. Przyrosty automatycznie | bigint (20) bez znaku | Podstawowy | ||
link_url | To jest adres URL linku | warchar(255) | |||
nazwa_linku | |||||
To jest nazwa linku | warchar(255) | ||||
obraz_linku | To jest adres URL obrazu związanego z linkiem | warchar(255) | |||
link_target | To jest ramka docelowa linku | warchar(25) | |||
link_opis | To jest opis linku | warchar(255) | |||
link_widoczny | Dzięki temu dowiemy się, czy link jest wyświetlany publicznie, czy nie | warchar(20) | Indeks | Y | |
link_owner | To jest identyfikator użytkownika, który utworzył link, jako dostępny w wp_users | bigint (20) bez znaku | 1 | ||
link_ocena | To jest ocena linku | wewn(11) | 0 | ||
link_zaktualizowany | To jest data i godzina aktualizacji linku | data i godzina | 0000-00-00 00:00:00 | ||
link_rel | To jest związek linku | warchar(255) | |||
link_notes | To są uwagi dotyczące linku | średni tekst | |||
link_rss | To jest adres kanału rss linku | warchar(255) |
wp_options
Tutaj przechowywane są ustawienia WordPress skonfigurowane za pomocą konsoli administratora. Wtyczki i motywy zazwyczaj przechowują tutaj również informacje o ustawieniach, jak pokazano na poniższym zrzucie ekranu. Tutaj możemy zobaczyć naszą własną opcję częstotliwości skanowania w Monitorze zmian plików witryny ustawioną na codzienną.
Tabela ma następujące kolumny:
Nazwa kolumny | Opis | Rodzaj | Zero | Klucz | Domyślna |
---|---|---|---|---|---|
identyfikator_opcji | Jest to unikalny identyfikator wpisu. Przyrosty automatycznie. | bigint(20) bez znaku | Podstawowy | ||
nazwa_opcji | To jest nazwa opcji/ustawienia | warchar(64) | Wyjątkowy | ||
Wartość opcji | To jest wartość zapisywanego ustawienia | długi tekst | |||
automatyczne ładowanie | To ustawienie mówi wp_load_alloptions(), czy ma automatycznie ładować opcję, czy nie | warchar(20) | Indeks | tak |
wp_postmeta
Metadane wpisów, które towarzyszą każdemu wpisowi, są tutaj przechowywane. Metadane mogą obejmować załączone pliki, miniatury, żądany post slug i inne tego typu informacje. Tabela ma następujące kolumny:
Nazwa kolumny | Opis | Rodzaj | Zero | Klucz | Domyślna |
---|---|---|---|---|---|
meta_id | Jest to unikalny identyfikator wpisu. Przyrosty automatycznie | bigint(20) bez znaku | Podstawowy | ||
Nazwa pola post_id | Jest to identyfikator postu, z którym powiązane są metadane, dostępny w wp_posts | bigint(20) bez znaku | Indeks | 0 | |
meta_klucz | To jest klucz indeksu, który identyfikuje metadane, ponieważ każdy post może mieć więcej niż jedną metadane | warchar(255) | tak | Indeks | Zero |
meta_wartość | To są rzeczywiste metadane | długi tekst | tak | Zero |
wp_posts
Tabela wp_posts jest główną i zawiera rdzeń danych WordPress. Zawiera rzeczywiste posty, strony, a także elementy menu nawigacyjnego, jak widać w poniższym przykładzie pokazującym domyślną przykładową stronę dołączoną do każdej nowej instalacji WordPressa.
Tabela ma następujące kolumny:
Nazwa kolumny | Opis | Rodzaj | Zero | Klucz | Domyślna |
---|---|---|---|---|---|
ID | Jest to unikalny identyfikator wpisu. Przyrosty automatycznie | bigint(20) bez znaku | Podstawowy i indeks (część 4) | ||
post_autor | To jest identyfikator autora, który napisał post, jako dostępny w wp_users | bigint(20) bez znaku | Indeks | 0 | |
Data wysłania | To jest data i godzina utworzenia posta | data i godzina | Indeks (część 3) | 0000-00-00 00:00:00 | |
post_date_gmt | To jest data i godzina GMT (Greenwich Mean Time) utworzenia posta | data i godzina | 0000-00-00 00:00:00 | ||
Treść postu | To jest rzeczywista treść wpisu | długi tekst | |||
post_title | To jest tytuł posta | tekst | |||
post_fragment | To jest fragment postu | tekst | |||
post_status | To jest status postu | warchar(20) | Indeks (część 2) | publikować | |
status_komentarza | Dzięki temu dowiemy się, czy komentarze pod postem są dozwolone, czy nie | warchar(20) | otwarty | ||
stan_pingu | To mówi nam, czy ping i trackback są dozwolone, czy nie | warchar(20) | otwarty | ||
post_password | Posty mogą być chronione hasłem za pomocą dowolnego odpowiedniego hasła przechowywanego tutaj | warchar(20) | |||
post_name | To jest slug URL tytułu posta | warchar(200) | indeks | ||
do_pingowania | To jest lista adresów URL, do których WordPress powinien wysyłać pingbacki za każdym razem, gdy post jest aktualizowany | tekst | |||
pingowany | To jest lista adresów URL, które WordPress wykonał pingback podczas aktualizacji | tekst | |||
post_zmodyfikowany | To jest data i godzina ostatniej modyfikacji posta | data i godzina | 0000-00-00 00:00:00 | ||
post_modified_gmt | To jest data i godzina GMT ostatniej modyfikacji posta | data i godzina | 0000-00-00 00:00:00 | ||
post_content_filtred | To jest filtrowana wersja post_content, która jest zwykle używana przez wtyczki do celów buforowania | długi tekst | |||
post_rodzic | Gdy post jest zmianą lub załącznikiem, tworzy to relację rodzic-dziecko | bigint(20) bez znaku | Indeks | 0 | |
przewodnik | To jest globalny unikalny identyfikator (GUID) postu | warchar(255) | |||
menu_order | To jest numer zamówienia, w którym pojawiają się strony i elementy nieopublikowane | wewn(11) | 0 | ||
post_type | To identyfikuje typ treści | warchar(20) | Indeks (część 1) | Poczta | |
post_mime_type | To jest typ mimowy załączników do posta | warchar(100) | |||
Liczba komentarzy | To jest całkowita liczba komentarzy, trackbacków i pingbacków | bigint(20) | 0 |
wp_terms
Terminy to obiekty klasyfikacyjne używane do klasyfikowania obiektów w WordPress. Na przykład kategorie i tagi używane w postach to rodzaje terminów. Ta tabela zawiera wszystkie rodzaje terminów używanych w WordPressie. Tabela ma następujące kolumny:
Nazwa kolumny | Opis | Rodzaj | Zero | Klucz | Domyślna |
---|---|---|---|---|---|
term_id | Jest to unikalny identyfikator wpisu. Przyrosty automatycznie | bigint(20) bez znaku | Podstawowy | ||
nazwać | To jest nazwa terminu | warchar(200) | Indeks | ||
ślimak | To jest ślimak tego terminu | warchar(200) | Wiele | ||
grupa_terminów | Jest to alias, którego motywy i wtyczki mogą używać do grupowania terminów razem | bigint(10) | 0 |
wp_termmeta
Ta tabela przechowuje metadane związane z terminami znalezionymi w wp_terms. Tabela ma następujące kolumny:
Nazwa kolumny | Opis | Rodzaj | Zero | Klucz | Domyślna |
---|---|---|---|---|---|
meta_id | Jest to unikalny identyfikator wpisu. Przyrosty automatycznie | bigint(20) bez znaku | Podstawowy | ||
term_id | To jest identyfikator terminu, do którego odnoszą się metadane, dostępny w wp_terms | bigint(20) bez znaku | Indeks | 0 | |
meta_klucz | To jest klucz identyfikatora terminu metadane | warchar(255) | tak | Indeks | ZERO |
meta_wartość | To są rzeczywiste metadane | długi tekst | tak | ZERO |
wp_term_relationships
Ta tabela utrzymuje relacje między postami i taksonomiami. Tabela ma następujące kolumny:
Nazwa kolumny | Opis | Rodzaj | Zero | Klucz | Domyślna |
---|---|---|---|---|---|
identyfikator_obiektu | To jest identyfikator postu dostępny w wp_posts | bigint(20) bez znaku | Podstawowy (część 1) | 0 | |
term_taksonomii_id | To jest identyfikator terminu taksonomia dostępny w wp_term_taxonomy | bigint(20) bez znaku | Podstawowe (część 2) i indeks | 0 | |
termin_zamówienie | To jest kolejność terminu | wewn(11) | 0 |
wp_term_taksonomia
Ta tabela zawiera taksonomie terminów i jako takie kontekst, w którym mogą być używane. Na przykład możemy użyć terminu baza danych jako kategorii postów i jako kategorii produktów (zakładając, że sprzedajemy usługi bazodanowe). W tym przypadku kategoria postu i kategoria produktu to taksonomie terminów. Tabela ma następujące kolumny:
Nazwa kolumny | Opis | Rodzaj | Zero | Klucz | Domyślna |
---|---|---|---|---|---|
term_taksonomii_id | Jest to unikalny identyfikator wpisu. Przyrosty automatycznie | bigint(20) bez znaku | Podstawowy | ||
term_id | To jest identyfikator terminu dostępny w wp_terms | bigint(20) bez znaku | Unikalny (część 1) | 0 | |
taksonomia | To jest ślimak taksonomii | warchar(32) | Unikalne (część 2) i indeks | ||
opis | To jest opis taksonomii | długi tekst | |||
rodzic | To jest identyfikator taksonomii rodzica, jeśli taksonomia jest podrzędna | bigint(20) bez znaku | 0 | ||
liczyć | Jest to liczba obiektów, które są przypisane do tej taksonomii | bigint(20) | 0 |
wp_usermeta
Ta tabela przechowuje dodatkowe dane użytkownika, których nie ma w tabeli wp_users. Sam WordPress, a także wtyczki lub motywy, mogą korzystać z tej tabeli.
Przykładem metadanych użytkownika jest pseudonim użytkownika. Chociaż WordPress domyślnie zawiera to pole, nadal jest częścią metadanych, jak pokazano poniżej. Innym przykładem jest WooCommerce; wtyczka e-commerce, która używa tej tabeli do przechowywania informacji o klientach, takich jak adres dostawy.
Tabela ma następujące kolumny:
Nazwa kolumny | Opis | Rodzaj | Zero | Klucz | Domyślna |
---|---|---|---|---|---|
umeta_id | Jest to unikalny identyfikator wpisu. Przyrosty automatycznie | bigint(20) bez znaku | Podstawowy | ||
identyfikator użytkownika | To jest identyfikator użytkownika, do którego odnoszą się informacje, zgodnie z wp_users | bigint(20) bez znaku | Indeks | 0 | |
meta_klucz | To jest kluczowy identyfikator wpisu meta | warchar(255) | tak | Indeks | Zero |
meta_wartość | To są rzeczywiste metadane | długi tekst | tak | Zero |
wp_users
Tutaj przechowywane są informacje użytkowników WordPress. Ponieważ użytkownicy są integralną częścią ekosystemu WordPress, ta tabela jest niezbędna.
Tabela przechowuje tylko podstawowe informacje dla każdego użytkownika, jak pokazano w poniższym przykładzie. Wszystkie inne informacje są przechowywane w tabeli wp_usermeta.
Tabela ma następujące kolumny:
Nazwa kolumny | Opis | Rodzaj | Zero | Klucz | Domyślna |
---|---|---|---|---|---|
ID | Jest to unikalny identyfikator wpisu. Przyrosty automatycznie | bigint(20) bez znaku | Podstawowy | ||
login użytkownika | To jest nazwa użytkownika | warchar(60) | Indeks | ||
hasło_użytkownika | To jest hasło użytkownika | warchar(64) | |||
nazwa_użytkownika | To jest wyświetlana nazwa użytkownika | warchar(50) | Indeks | ||
użytkownik_e-mail | To jest adres e-mail użytkownika | warchar(100) | |||
user_url | To jest adres URL użytkownika (np. strona internetowa) | warchar(100) | |||
użytkownik_zarejestrowany | Jest to data i godzina rejestracji użytkownika | data i godzina | 0000-00-00 00:00:00 | ||
klucz_aktywacji_użytkownika | To jest klucz aktywacyjny użytkownika, używany do resetowania hasła | warchar(60) | |||
status użytkownika | Nie jest już używane od WordPress 3.0, ale służy do wskazywania, czy użytkownik był spamem | wewn(11) | 0 | ||
wyświetlana nazwa | To jest publiczna nazwa wyświetlana użytkownika | warchar(250) |
Zapoznaj się z bazą danych WordPress
Bazy danych mogą być dość onieśmielające dla niewtajemniczonych – w końcu zawierają wszystkie dane wymagane do działania WordPressa. Chociaż prawdą jest, że błąd w tym miejscu może spowodować awarię witryny, nie daj się zastraszyć. W końcu znajomość bazy danych WordPressa może znacznie ułatwić rozwiązywanie problemów, jeśli będzie to wymagane.
Skonfigurowanie środowiska testowego lub tymczasowego może zapewnić bezpieczną przestrzeń, w której możesz swobodnie eksperymentować bez ryzyka wyłączenia swojej witryny. Możesz nawet bezpłatnie skonfigurować środowisko testowe XAMPP na swoim komputerze – zapewniając wszystko, czego potrzebujesz do opanowania bazy danych WordPress.