Przejdź do treści

WordPress REST API – konfiguracja, endpointy i praktyczne zastosowania

Opublikowano: 18 stycznia 2026 | Zaktualizowano: 8 marca 2026

WordPress REST API to interfejs, który pozwala komunikowac sie ze strona WordPress z zewnatrz – przez HTTP, w formacie JSON. Dzieki niemu możesz pobierac posty, tworzyc nowe treści, aktualizowac dane czy budowac frontend w React lub Next.js zasilany danymi z WordPressa. API jest wbudowane od wersji 4.7 i dziala out of the box. W tym poradniku pokaze Ci jak z niego korzystac, jak tworzyc własne endpointy i jak zabezpieczyc dostep.

Krótka odpowiedź

WordPress REST API jest włączone domyslnie od WP 4.

7. Endpointy dostepne sa pod adresem twojastrona.pl/wp-json/wp/v2/ (np. /wp-json/wp/v2/posts dla postow). Do odczytu publicznych danych nie potrzebujesz autentykacji. Do zapisu uzyj Application Passwords (Uzytkownicy > Profil > Hasla aplikacji) lub tokenu JWT. Własne endpointy rejestrujesz przez register_rest_route() w functions.php.

Usługi KC Mobile

Sprawdź naszą ofertę

Potrzebujesz pomocy specjalisty? Skorzystaj z naszych usług i rozwiń swój biznes online.

Co to jest WordPress REST API i do czego sluzy

REST API (Representational State Transfer) to sposob komunikacji między aplikacjami przez HTTP. WordPress używa go wewnetrznie (edytor Gutenberg komunikuje sie z backendem przez REST API) i udostepnia go na zewnatrz.

Praktyczne zastosowania:
- Headless WordPress – frontend w React/Next.js/Astro, backend w WordPress
- Aplikacja mobilna pobierajaca treści ze strony WordPress
- Integracja z CRM – automatyczne tworzenie postow z systemu zewnetrznego
- Synchronizacja danych między kilkoma stronami WordPress
- Automatyzacja – skrypty tworzace, aktualizujace lub usuwajace treści

Jak to dziala:
Wysylasz zapytanie HTTP (GET, POST, PUT, DELETE) na okreslony adres (endpoint), a WordPress odpowiada danymi w formacie JSON.

Przyklad: `GET https://twojastrona.pl/wp-json/wp/v2/posts` zwraca liste ostatnich postow w JSON.

REST API jest fundamentem nowoczesnego WordPressa. Gutenberg, aplikacja mobilna WordPress, a nawet niektorze wtyczki – wszystko korzysta z tego API w tle.

Domyslne endpointy wp-json/wp/v2/

WordPress udostepnia zestaw wbudowanych endpointow. Oto najwazniejsze:

Treści:
- `/wp-json/wp/v2/posts` – posty (wpisy blogowe)
- `/wp-json/wp/v2/pages` – strony statyczne
- `/wp-json/wp/v2/media` – pliki mediow (obrazki, PDF)
- `/wp-json/wp/v2/comments` – komentarze

Taksonomie:
- `/wp-json/wp/v2/categories` – kategorie
- `/wp-json/wp/v2/tags` – tagi

Uzytkownicy:
- `/wp-json/wp/v2/users` – lista użytkownikow (domyslnie publiczna!)

Parametry zapytan:
- `?per_page=5` – liczba wynikow na strone
- `?page=2` – numer strony
- `?search=wordpress` – wyszukiwanie
- `?categories=3` – filtrowanie po kategorii
- `?orderby=date&order=desc` – sortowanie
- `?_embed` – dolacza powiazane dane (obrazek wyrozniajacy, autor)

Przyklad pelnego zapytania:
`GET /wp-json/wp/v2/posts?per_page=3&categories=5&_embed`

Zwroci 3 ostatnie posty z kategorii ID 5, z dolaczonymi danymi autora i obrazka.

Wolisz, żeby zrobił to specjalista?

Oszczędź czas i uniknij błędów. Wdrożymy to rozwiązanie za Ciebie – profesjonalnie i szybko.

Narzedzia do pracy z REST API

Testowanie API bezposrednio w przegladarce dziala tylko dla GET. Do pelnej pracy potrzebujesz narzedzia.

Postman (najpopularniejszy):
- Darmowy dla indywidualnych użytkownikow
- Interfejs graficzny do budowania zapytan
- Zapisujesz kolekcje endpointow, zmienne środowiskowe (np. URL strony)
- Automatyczne formatowanie JSON w odpowiedziach

Insomnia:
- Lzejsza alternatywa dla Postmana
- Open source, szybkie uruchamianie
- Obsluguje REST, GraphQL, gRPC

curl (linia komend):
Szybkie testy bez instalowania czegokolwiek:

curl -s https://twojastrona.pl/wp-json/wp/v2/posts?per_page=2 | jq .

(`jq` formatuje JSON – zainstaluj przez `brew install jq` lub `apt install jq`)

Przegladarka:
Dla prostych GET wpisz URL endpointu w pasku adresu. Zainstaluj rozszerzenie JSON Formatter, zeby dane byly czytelne.

WP-CLI:
WP-CLI ma wbudowana obsluge REST API:

wp rest post list --per_page=5
wp rest post get 123

Autentykacja w REST API (Application Passwords, JWT)

Odczyt publicznych danych (posty, strony) nie wymaga autentykacji. Ale tworzenie, edycja i usuwanie – tak.

Application Passwords (wbudowane od WP 5.6):
Najprostszy sposob. Dziala bez wtyczek.
1. Przejdz do Uzytkownicy > Profil
2. Przewin do sekcji Hasla aplikacji
3. Wpisz nazwe (np. Postman dev) i kliknij Dodaj
4. Skopiuj wygenerowane haslo (wyswietli sie tylko raz!)
5. W zapytaniach uzyj HTTP Basic Auth: username + application password

Przyklad w curl:

curl -X POST https://twojastrona.pl/wp-json/wp/v2/posts \
  -u "admin:xxxx xxxx xxxx xxxx" \
  -H "Content-Type: application/json" \
  -d '{"title":"Nowy post","status":"draft","content":"Treść posta."}'

JWT (JSON Web Tokens):
Lepsze do aplikacji frontendowych (React, Next.js). Wymaga wtyczki JWT Authentication for WP REST API.
1. Zainstaluj i aktywuj wtyczke
2. Dodaj secret key w wp-config.php
3. Wyslij POST na /wp-json/jwt-auth/v1/token z loginem i haslem
4. Otrzymasz token – dolaczaj go w naglowku Authorization: Bearer TOKEN

JWT jest bezpieczniejsze od Application Passwords w aplikacjach klienckich, bo token wygasa po okreslonym czasie.

Tworzenie własnych endpointow (register_rest_route)

Domyslne endpointy nie zawsze wystarczaja. Możesz stwórzyc własne.

Podstawowy przyklad:
W pliku functions.php motywu lub we wtyczce:

add_action('rest_api_init', function() {
    register_rest_route('mojafirma/v1', '/kontakt', [
        'methods' => 'GET',
        'callback' => 'moj_endpoint_kontakt',
        'permission_callback' => '__return_true',
    ]);
});

function moj_endpoint_kontakt() {
    return [
        'firma' => 'KC Mobile',
        'email' => '[email protected]',
        'telefon' => '+48 123 456 789',
    ];
}

Endpoint będzie dostepny pod: `/wp-json/mojafirma/v1/kontakt`

Endpoint z parametrami:

register_rest_route('mojafirma/v1', '/produkt/(?P<id>\d+)', [
    'methods' => 'GET',
    'callback' => function($request) {
        $id = $request->get_param('id');
        $post = get_post($id);
        return $post ? ['title' => $post->post_title] : new WP_Error('not_found', 'Nie znaleziono', ['status' => 404]);
    },
    'permission_callback' => '__return_true',
]);

Zabezpieczony endpoint (tylko zalogowani):

'permission_callback' => function() {
    return current_user_can('edit_posts');
}

Zawsze definiuj `permission_callback` – bez niego WordPress wyswietli ostrzezenie w logach.

Zabezpieczenie REST API – ograniczanie dostepu

Domyslnie REST API jest otwarte dla wszystkich. Każdy może odczytac posty, strony, a nawet liste użytkownikow. To nie zawsze jest pozadane.

Wylaczenie REST API dla niezalogowanych:

add_filter('rest_authentication_errors', function($result) {
    if (!is_user_logged_in()) {
        return new WP_Error('rest_forbidden', 'Brak dostepu', ['status' => 401]);
    }
    return $result;
});

Ukrycie listy użytkownikow (czeste zalecenie bezpieczeństwa):

add_filter('rest_endpoints', function($endpoints) {
    unset($endpoints['/wp/v2/users']);
    unset($endpoints['/wp/v2/users/(?P<id>[\d]+)']);
    return $endpoints;
});

Wtyczki do zarządzania dostepem:
- Disable WP REST API – calkowite wylaczenie dla niezalogowanych
- WP REST API Controller – graficzny interfejs do włączania/wylaczania endpointow

Rate limiting:
WordPress nie ma wbudowanego rate limitingu. Możesz go dodac przez:
- Cloudflare (Rate Limiting Rules) – najlatwiejsze
- Wtyczke bezpieczeństwa (Wordfence ma rate limiting)
- Konfiguracje Nginx (limit_req_zone)

Ważne: nie wylaczaj REST API calkowicie, jesli uzywasz Gutenberga – edytor blokowy komunikuje sie z backendem przez REST API.

WordPress jako headless CMS (Next.js, Astro, React)

Headless WordPress to architektura, w której WordPress sluzy jako backend (CMS do zarządzania trescia), a frontend jest zbudowany w innej technologii – React, Next.js, Astro, Vue.

Dlaczego headless?
- Szybkosc – statycznie generowane strony laduja sie blyskawicznie
- Elastycznosc – frontend nie jest ograniczony motywami WordPress
- Bezpieczeństwo – wp-admin nie jest wystawiony publicznie (może byc na subdomenie)
- Skalowalnosc – frontend na CDN, backend na osobnym serwerze

Przyklad z Next.js:

// pages/blog/[slug].js
export async function getStaticPaths() {
  const res = await fetch('https://cms.twojastrona.pl/wp-json/wp/v2/posts?per_page=100');
  const posts = await res.json();
  return {
    paths: posts.map(p => ({ params: { slug: p.slug } })),
    fallback: 'blocking',
  };
}

Przyklad z Astro:
Astro świetnie wspolgra z WordPress REST API. Strona kcmobile.pl korzysta własnie z takiej architektury – dane z JSON, renderowanie statyczne, deploy na serwer.

WooCommerce REST API:
Jesli prowadzisz sklep WooCommerce, masz dodatkowe endpointy: /wp-json/wc/v3/products, /wp-json/wc/v3/orders. Klucze API generujesz w WooCommerce > Ustawienia > Zaawansowane > REST API.

Potrzebujesz pomocy przy budowie headless WordPress? Skontaktuj sie z namitworzymy strony w nowoczesnych technologiach.

Wspomniane narzędzia

Postman Insomnia WP-CLI JWT Authentication WP REST API Controller Next.js Astro Cloudflare

Potrzebujesz pomocy z WordPress?

Tworzymy i naprawiamy strony na WordPress. Optymalizacja prędkości, bezpieczeństwo, aktualizacje. 500+ zrealizowanych projektów.

Najczęściej zadawane pytania

Czy REST API jest włączone domyslnie w WordPress?
Tak – REST API jest wbudowane i włączone od WordPress 4.7 (grudzien 2016). Nie musisz niczego instalowac ani aktywowac. Sprawdz wpisujac w przegladarke twojastrona.pl/wp-json/ – powinienes zobaczyc dane JSON opisujace dostepne endpointy. Jesli widzisz blad 404, sprawdz ustawienia bezposrednich odnosnikow (Ustawienia > Bezposrednie odnasniki) – musza byc inne niz Proste.
Jak wylaczyc REST API w WordPress?
Możesz ograniczyc dostep przez filtr rest_authentication_errors – zwracajac WP_Error dla niezalogowanych użytkownikow. Calkowite wylaczenie możliwe przez wtyczke Disable WP REST API. Pamietaj jednak, ze Gutenberg wymaga REST API do dzialania – jesli wylaczysz API calkowicie, edytor blokowy przestanie dzialac. Lepszym rozwiązaniem jest selektywne ukrywanie endpointow (np. /users) niz globalne wylaczenie.
Czym różni sie REST API od GraphQL w WordPress?
REST API zwraca stala strukture danych dla każdego endpointu – dostajesz wszystkie pola, nawet jesli potrzebujesz tylko tytulu. GraphQL (przez wtyczke WPGraphQL) pozwala zapytac dokladnie o te pola, które potrzebujesz, w jednym zapytaniu. GraphQL jest wydajniejsze przy zlozonych zapytaniach, ale trudniejsze do wdrozenia. Dla prostych integracji REST API wystarczy. Dla headless frontendu GraphQL często jest lepszym wyborem.
Czy REST API spowalnia WordPress?
Samo istnienie REST API nie spowalnia strony – endpointy sa wywolywane tylko gdy ktos wyslije zapytanie. Problem może wystapic, gdy zewnetrzne boty skanuja Twoje API generujac duzo zapytan. Rozwiązanie: rate limiting przez Cloudflare lub Wordfence. Jesli nie korzystasz z API i chcesz zminimalizowac powierzchnie ataku, możesz ograniczyc dostep filtrami PHP bez wplywu na wydajnosc frontendu.
Jak zabezpieczyc endpointy REST API?
Trzy poziomy zabezpieczen: (1) ukryj wrazliwe endpointy jak /users filtrem rest_endpoints, (2) wymagaj autentykacji dla zapisu przez permission_callback w register_rest_route lub globalnie filtrem rest_authentication_errors, (3) dodaj rate limiting przez Cloudflare lub konfiguracje serwera. Dla Application Passwords zawsze generuj osobne haslo per aplikacja – latwiej odwolac dostep bez zmiany głównego hasla.
Co to jest headless WordPress?
Headless WordPress to architektura, w której WordPress pelni role backendu (systemu zarządzania trescia), a frontend jest zbudowany w innej technologii – React, Next.js, Astro, Vue. Komunikacja odbywa sie przez REST API lub GraphQL. Zalety: szybkosc (statyczne strony), elastycznosc (dowolny design), bezpieczeństwo (wp-admin ukryty). Wady: większa zlozonosc techniczna, brak podgladu na zywo, potrzeba dwoch środowisk hostingowych.
#wordpress#rest-api#headless-cms#next-js#astro#autentykacja#application-passwords#jwt#wp-json#woocommerce-api#postman
Zdjęcie autora: Krzysztof Czapnik
O autorze

Krzysztof Czapnik

CEO KC Mobile

20+ lat doświadczenia w digital marketingu i tworzeniu stron internetowych. Specjalizuję się w SEO, kampaniach Google Ads oraz budowaniu skutecznych strategii online dla firm z całej Polski.

Potrzebujesz pomocy?

Wolisz, żeby zrobił to specjalista?

Oszczędź czas i uniknij błędów. Wdrożymy to rozwiązanie za Ciebie – profesjonalnie i szybko.

Bezpłatna wycena