
W jakim języku napisany jest WordPress
Kiedy ludzie pytają, w jakim języku napisany jest WordPress, za tym pytaniem prawie zawsze kryje się inne: „Od czego zacząć, jeśli chcę go zrozumieć?" I to jest właściwe podejście.
Tworzenie pod WordPressa to nie magia ani zamknięty klub. To stos pięciu technologii, z których cztery są znane każdemu, kto zajmuje się tworzeniem stron. Piąta, PHP, utrzymuje rdzeń, motywy, wtyczki i całą logikę serwerową. Trzeba jednak nauczyć się nie „jednego języka", ale zrozumieć, jak one ze sobą współpracują i w jakiej kolejności je opanowywać.
💡 Szybki przegląd:
- Rdzeń WordPressa jest napisany w PHP. Dane przechowywane są w MySQL. To część serwerowa, niewidoczna dla użytkownika.
- W przeglądarce strona składana jest z HTML (struktura), CSS (wygląd) i JavaScript (interaktywność), trzech technologii frontendowych.
- Stos należy opanowywać w kolejności: HTML, potem CSS, potem PHP, potem JavaScript, potem SQL. Od prostego do złożonego.
PHP, silnik WordPressa
Rdzeń WordPressa to dziesiątki tysięcy linii kodu PHP. Gdy przeglądarka żąda strony, serwer wykonuje skrypty PHP, pobiera dane z bazy, przepuszcza je przez szablony motywu i zwraca gotowy HTML. Użytkownik nie widzi kodu PHP, otrzymuje już złożoną stronę.

PHP w WordPressie działa jak dyrygent: „dyryguje" HTML-em, wywołuje funkcje z bazy danych, podstawia ustawienia z panelu administracyjnego i składa finalną stronę. Każdy szablon motywu to plik PHP z wplecionym HTML-em. Każda wtyczka to plik PHP, który poprzez hooki (add_action, add_filter) podłącza się do rdzenia.
Bez PHP WordPress po prostu nie wystartuje. Dlatego odpowiedź na główne pytanie jest jednoznaczna: WordPress jest napisany w PHP. Nie jest to jednak jedyny język potrzebny programiście.
HTML, szkielet każdej strony
HTML to nie język programowania, a język znaczników. Nie „oblicza", lecz opisuje strukturę: gdzie jest nagłówek, gdzie akapit, gdzie obrazek, gdzie przycisk. Przeglądarka odczytuje znaczniki HTML i przekształca je w widoczną stronę.
W WordPressie HTML nie jest przechowywany w postaci osobnych plików. Szablony motywu są napisane w PHP, ale zwracają właśnie HTML. Gdy edytuje Pan/Pani stronę w Gutenbergu, edytor zapisuje treść w bazie, ale na wyjściu odwiedzający i tak otrzymuje HTML.
1 <html> 2 <head> 3 <meta charset="UTF-8" /> 4 <title>�,аголовок страницы в поиске</title> 5 </head> 6 <body> 7 <h1>�,аголовок страницы</h1> 8 <p class="intro">Текст вступительного абзаца</p> 9 </body> 10 </html>
Kluczową cechą HTML są znaczniki. Każdy znacznik ma swoją rolę. <h1> to nagłówek pierwszego poziomu. <p> to akapit. <a> to odnośnik. Znacznik zamykający z ukośnikiem (</h1>) pokazuje, gdzie element się kończy. Niektóre znaczniki, na przykład <meta> lub <img>, są samozamykające: nie potrzebują pary.
Znaczniki HTML mogą mieć klasy: class="intro" w przykładzie powyżej. Klasa to „kotwica" dla CSS. Przeglądarka znajduje wszystkie elementy z taką klasą i stosuje do nich style z pliku CSS.
Podsumowując: HTML określa, co użytkownik widzi na stronie. Ale o tym, jak to wygląda, decyduje CSS.
CSS, ubranie strony
CSS to skrót od Cascading Style Sheets, kaskadowe arkusze stylów. O ile HTML nadaje stronie strukturę, o tyle CSS nadaje jej kolor, krój pisma, odstępy, rozmieszczenie bloków i responsywność na ekranach mobilnych.

Bez CSS każda strona wygląda jak biała kartka z czarnym tekstem i niebieskimi odnośnikami. Formatowanie nagłówków, siatka kolumn, animacje, cienie, zaokrąglenia, wszystko to robi właśnie CSS.
W WordPressie CSS znajduje się w plikach motywu (zazwyczaj style.css). Każdy motyw musi mieć ten plik, bez niego WordPress nie rozpozna motywu. Wtyczki również mogą ładować swoje pliki CSS poprzez mechanizm wp_enqueue_style().
1 .intro { 2 color: #325050; 3 background: #fff; 4 font-family: 'Libre Baskerville', serif; 5 font-size: 0.85rem; 6 line-height: 1.6; 7 }
Kropka przed .intro oznacza: „zastosuj te style do WSZYSTKICH elementów z klasą intro". To właśnie kaskada: jedna klasa, wiele elementów na różnych stronach. Zmiana reguły w jednym miejscu aktualizuje całą stronę.
Dla współczesnego tworzenia pod WordPressa ważna jest znajomość nie tylko podstawowego CSS, ale także responsywnego kodowania z użyciem media queries. Motywy bez responsywności dziś nie mają racji bytu, Google ocenia strony według podejścia mobile-first.
JavaScript, zachowanie strony
JavaScript jest jedynym z tej piątki, bez którego WordPress technicznie może działać. Motyw jest w stanie w pełni funkcjonować bez ani jednej linijki JS. W praktyce jednak żadna nowoczesna strona się bez niego nie obywa.
JavaScript odpowiada za to, co dzieje się po załadowaniu strony: rozwijane menu, okno modalne, leniwe ładowanie obrazków, walidacja formularza przed wysłaniem, zmiana motywu bez przeładowania. Wszystko, co reaguje na działania użytkownika, kliknięcie, przewijanie, wpisywanie tekstu, jest powiązane z JS.
1 (function($) { 2 var navMenu = '.primary-navigation'; 3 var pageContent = '.main-content'; 4 var gap = parseInt($('html').css('font-size'), 10) * 2; 5 6 function setPageMin() { 7 var height = $(navMenu).height(); 8 $(pageContent).css('min-height', height + gap); 9 } 10 11 $(window).on('load', function() { 12 setPageMin(); 13 $(window).on('resize', function() { 14 setTimeout(setPageMin, 120); 15 }); 16 }); 17 })(jQuery);
Ten przykład w jQuery pokazuje typowe zadanie: obliczyć wysokość nawigacji i ustawić minimalną wysokość obszaru treści, aby strona nie „skakała". Kod uruchamia się podczas ładowania i przy każdej zmianie rozmiaru okna.
Jednak największy wpływ JavaScript na WordPressa nastąpił wraz z pojawieniem się Gutenberga, edytora blokowego napisanego w React. Cały interfejs edycji postów, wszystkie bloki (akapit, nagłówek, galeria, kolumny) to aplikacja JavaScript działająca wewnątrz panelu administracyjnego WordPressa.
Dlatego dziś programista WordPressa, który całkowicie ignoruje JavaScript, jest mocno ograniczony. Można zakodować motyw, ale niestandardowych bloków Gutenberga bez JS już się nie napisze.
SQL i MySQL, gdzie mieszkają dane
Posty, strony, ustawienia, użytkownicy, komentarze, pola meta, cała treść WordPressa przechowywana jest w bazie danych MySQL (lub MariaDB). PHP komunikuje się z bazą poprzez zapytania SQL, ale programista rzadko musi pisać „czysty" SQL.
WordPress udostępnia własną warstwę abstrakcji, klasę wpdb. Wywołania takie jak get_posts(), update_post_meta() i WP_Query zawierają już gotowe zapytania SQL w środku. Chroni to przed typowymi błędami i atakami SQL injection, pod warunkiem korzystania z wbudowanych metod, a nie pisania ręcznych zapytań do bazy.
Niemniej jednak rozumienie SQL jest przydatne: gdy projekt rozrasta się do dziesiątków tysięcy postów i zapytania zaczynają spowalniać, umiejętność odczytania EXPLAIN i znalezienia brakującego indeksu jest bezcenną umiejętnością.
Jak zbudowany jest motyw WordPressa
Motyw WordPressa to nie monolit. To zestaw plików PHP, z których każdy odpowiada za swój typ strony. index.php, główna i wszystko domyślnie. single.php, pojedynczy post. page.php, strona statyczna. archive.php, archiwum kategorii. WordPress sam wybiera odpowiedni szablon według hierarchii, nazywa się to Template Hierarchy.
Wewnątrz każdego szablonu znajdują się standardowe funkcje PHP rdzenia WordPressa. the_title() wyświetla tytuł. the_content(), treść posta. wp_nav_menu(), menu. Pełna lista dostępna jest w dokumentacji WordPressa. HTML i PHP w motywie są przemieszane: otwarcie <?php, wywołanie funkcji, zamknięcie ?>, następnie HTML. Nie jest to idealna architektura według współczesnych standardów, ale działa na ponad 40% stron internetowych.
Do stworzenia motywu potrzebna jest znajomość PHP, HTML i CSS co najmniej. JavaScript jest opcjonalny, ale dla elementów interaktywnych (menu mobilne, zakładki, akordeony) będzie potrzebny.
Jak zbudowana jest wtyczka WordPressa
Wtyczka to plik PHP (co najmniej jeden) ze specjalnym nagłówkiem-komentarzem na początku. Z tego komentarza WordPress odczytuje nazwę, wersję i autora, wszystko, co widać w panelu administracyjnym na stronie wtyczek.
Wtyczka wchodzi w interakcję z rdzeniem poprzez hooki. Są dwa typy:
- Actions (
add_action), wykonują kod w określonym momencie: podczas ładowania strony, podczas zapisywania posta, podczas aktywacji wtyczki. - Filters (
add_filter), przechwytują i modyfikują dane: zmieniają tekst, dodają klasę CSS, podmieniają URL.
Najprostsza wtyczka to dosłownie kilka linijek:
1 <?php 2 /** 3 * Plugin Name: Приветственный плагин 4 * Description: Добавляет приветствие в конец каждого поста. 5 * Version: 1.0 6 */ 7 8 function my_greeting($content) { 9 if (is_single()) { 10 $content .= '<p>Спасибо, что читаете наш блог!</p>'; 11 } 12 return $content; 13 } 14 add_filter('the_content', 'my_greeting');
Zauważył Pan/Pani add_filter? Właśnie tak wtyczki WordPressa rozszerzają funkcjonalność, nie poprzez modyfikację rdzenia (jest to kategorycznie zabronione), ale poprzez przechwytywanie danych za pomocą hooków. Dlatego aktualizacje WordPressa nie psują niestandardowego kodu, pod warunkiem że programista korzystał z oficjalnego API, a nie ingerował w pliki rdzenia.
WordPress i Node.js: zamiany nie będzie
Plotki o tym, że WordPress „przechodzi na Node.js", krążą od 2015 roku, od momentu pojawienia się Calypso, desktopowego interfejsu panelu administracyjnego WordPress.com, napisanego w Node.js i React. Potem pojawił się Gutenberg, również w React. JavaScript stał się bardziej widoczny i ktoś uznał, że PHP dożywa ostatnich dni.
To nieprawda. Oficjalne stanowisko WordPressa jest niezmienne: rdzeń pozostaje przy PHP. Nikt nie planuje przepisywać 20-letniej bazy kodu na Node.js, jest to bezcelowe i złamałoby wsteczną kompatybilność z tysiącami motywów i wtyczek.
Co naprawdę się stało: WordPress przekształcił się w platformę hybrydową. Backend, PHP i MySQL. Frontend panelu administracyjnego, JavaScript (React). Część publiczna, HTML, CSS i trochę JS. REST API, wbudowane w rdzeń od wersji 4.7, pozwala aplikacjom JavaScript komunikować się z WordPressem bez przeładowywania strony. Otworzyło to drogę rozwiązaniom headless, gdzie WordPress działa jako bezgłowy backend CMS, a frontend zbudowany jest w Next.js lub Gatsby.
Podsumowując: nauka Node.js i React do pracy z WordPressem jest przydatna, ale nie zamiast PHP, a razem z nim.
Od czego zacząć naukę WordPressa
Ścieżka nauki zbudowana jest od prostego do złożonego, od tego, co użytkownik widzi w przeglądarce, do tego, co dzieje się na serwerze.
Krok 1: HTML. Bez zrozumienia znaczników, atrybutów i struktury dokumentu nie ma sensu iść dalej. HTML to alfabet sieci. Na szczęście podstawowy poziom opanowuje się w tydzień.
Krok 2: CSS. Gdy strona jest gotowa strukturalnie, trzeba ją ostylować. Proszę poznać model blokowy, pozycjonowanie, flexbox, grid i media queries. Bez responsywnego kodowania nie zbuduje Pan/Pani motywu WordPressa.
Krok 3: PHP. Teraz najważniejsze. Proszę uczyć się PHP w kontekście WordPressa: jak działają funkcje rdzenia, czym jest pętla WP_Query, jak zbudowana jest hierarchia szablonów. Abstrakcyjny „PHP w ogóle" jest potrzebny jako baza, ale należy skupić się na tym, co realnie występuje w motywach i wtyczkach.
Krok 4: JavaScript. Proszę zacząć od prostego: jQuery do manipulacji DOM, obsługa zdarzeń. Następnie nowoczesny JavaScript (ES6+), a potem React do niestandardowych bloków Gutenberga.
Krok 5: SQL. Proszę nie pisać zapytań ręcznie bez wyraźnej potrzeby, ale umieć przeczytać i zrozumieć, co dzieje się pod maską WP_Query. W dużych projektach pozwoli to zaoszczędzić godziny debugowania.
Kolejność jest kluczowa. Jeśli zacznie Pan/Pani od JavaScriptu, ignorując PHP, będzie Pan/Pani w stanie pisać bloki Gutenberga, ale nie zbuduje motywu. Jeśli zacznie Pan/Pani od PHP bez HTML/CSS, kod serwerowy będzie, ale nie będzie czego pokazać użytkownikowi. Proszę podążać wyznaczoną trasą, a po kilku miesiącach będzie Pan/Pani w stanie zbudować pełnoprawny motyw od zera.
⁉️🤔 Często zadawane pytania
Czy trzeba znać wszystkie pięć języków, aby stworzyć motyw WordPressa?
Aby zbudować prosty motyw, wystarczy PHP, HTML i CSS. JavaScript jest potrzebny do elementów interaktywnych: menu mobilnego, slidera, leniwego ładowania. SQL na starcie nie jest obowiązkowy: gotowe funkcje rdzenia ukrywają zapytania do bazy. Jednak przy złożonych projektach i optymalizacji bez JS i SQL już się nie obejdzie.
Czy można zostać programistą WordPressa, znając tylko JavaScript?
Nie. Rdzeń, motywy i wtyczki działają na PHP. JavaScript przyda się do bloków Gutenberga i interaktywności na froncie, ale bez PHP nie stworzy Pan/Pani nawet najprostszej wtyczki. JavaScript i PHP w WordPressie to partnerzy, a nie konkurenci.
Czy to prawda, że wkrótce WordPress całkowicie przejdzie na JavaScript?
Nie. Oficjalne stanowisko zespołu WordPressa: rdzeń pozostaje przy PHP. JavaScript rozszerza możliwości (Gutenberg, REST API), ale nie zastępuje PHP po stronie serwera. Obawy wynikły ze wzrostu popularności Reacta w panelu administracyjnym, ale to ewolucja, a nie wymiana platformy.
Ile czasu zajmie nauka tworzenia pod WordPressa od zera?
Przy systematycznym podejściu (HTML → CSS → PHP → JS → SQL) i codziennej praktyce, od 4 do 8 miesięcy do poziomu, w którym pewnie buduje Pan/Pani niestandardowy motyw i prostą wtyczkę. Pierwsze dwa tygodnie to tylko HTML i CSS. Następnie PHP zajmie większość czasu, ponieważ na nim wszystko się opiera.
Czy trzeba koniecznie uczyć się jQuery, czy można od razu React?
jQuery jest wciąż używane w większości motywów WordPressa i wbudowane w rdzeń, jego znajomość przyda się do wsparcia projektów legacy. Jednak do nowych prac (szczególnie bloków Gutenberga) proszę uczyć się Reacta. Proszę zaczynać od nowoczesnego JavaScriptu (ES6+), potem React, to bardziej perspektywiczne.
Czy warto uczyć się WordPressa w 2026 roku
Krótka odpowiedź: tak. WordPress obsługuje ponad 43% wszystkich stron internetowych, a wskaźnik ten stabilnie utrzymuje się w przedziale 43-44% od kilku lat. Popyt na programistów, którzy rozumieją nie tylko „kliknięcie przycisku instaluj motyw", ale także potrafią napisać niestandardową funkcjonalność w PHP, jest niezmiennie wysoki.
Najważniejsza jest właściwa kolejność. HTML i CSS dają fundament w ciągu kilku tygodni. PHP otwiera dostęp do rdzenia, hooków i wtyczek. JavaScript dodaje interaktywność i perspektywę rozwoju (Gutenberg, headless, React). SQL zamyka obraz na poziomie bazy danych.
Proszę zacząć od pierwszego kroku, a za pół roku będzie Pan/Pani patrzeć na WordPressa nie jak na „kreator stron", ale jak na potężną platformę, którą kontroluje Pan/Pani na każdym poziomie, od znacznika HTML po indeks SQL.



