Kompletny przewodnik po bazie danych WordPress

Opublikowany: 2022-02-09

U 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

(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ą. Częstotliwość skanowania monitora zmian plików WordPress

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. Przykładowa strona zawarta w 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.

Metadane pseudonimu użytkownika

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.

Użytkownicy WordPressa inne metainformacje

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.