WordPress REST API - praktyczny przewodnik
REST API otwiera WordPress na świat zewnętrznych aplikacji. Możesz pobierać i wysyłać dane z dowolnej aplikacji. Podstawa headless WordPress i zaawansowanych integracji.
Krótka odpowiedź
Podstawy REST API
Dostęp do API:
- URL: twojadomena.pl/wp-json/wp/v2/
- Przeglądarka: wpisz URL i zobacz JSON
- Postman/Insomnia: testowanie requestów
Główne endpointy:
- /wp/v2/posts - posty
- /wp/v2/pages - strony
- /wp/v2/media - media
- /wp/v2/users - użytkownicy
- /wp/v2/categories - kategorie
- /wp/v2/tags - tagi
Metody HTTP:
- GET - pobieranie danych
- POST - tworzenie
- PUT/PATCH - aktualizacja
- DELETE - usuwanie
Pobieranie danych (GET)
Wszystkie posty:
```
GET /wp-json/wp/v2/posts
```
Jeden post:
```
GET /wp-json/wp/v2/posts/123
```
Parametry:
- per_page=10 - liczba wyników
- page=2 - strona paginacji
- search=fraza - wyszukiwanie
- categories=5 - filtr kategorii
- orderby=date - sortowanie
- order=desc - kierunek
Przykład:
```
/wp-json/wp/v2/posts?per_page=5&categories=3&orderby=title
```
JavaScript fetch:
```javascript
fetch('https://example.com/wp-json/wp/v2/posts')
.then(res => res.json())
.then(posts => console.log(posts));
```
Autoryzacja i tworzenie danych
Metody autoryzacji:
- Application Passwords (WordPress 5.6+)
- JWT (wtyczka)
- OAuth (wtyczka)
- Cookie (dla zalogowanych)
Application Passwords:
1. Użytkownicy → Twój profil
2. Application Passwords → nowe hasło
3. Użyj w nagłówku Authorization
Tworzenie posta:
```javascript
fetch('https://example.com/wp-json/wp/v2/posts', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Basic ' + btoa('user:app_password')
},
body: JSON.stringify({
title: 'Nowy post',
content: 'Treść posta',
status: 'publish'
})
});
```
Custom Endpoints
Tworzenie własnego endpointu:
```php
add_action('rest_api_init', function() {
register_rest_route('myplugin/v1', '/data', array(
'methods' => 'GET',
'callback' => 'my_custom_endpoint',
'permission_callback' => '__return_true'
));
});
function my_custom_endpoint() {
return array('message' => 'Hello from API');
}
```
Headless WordPress:
- WordPress jako backend (CMS)
- Frontend: React, Vue, Next.js
- Pobieranie danych przez REST API
- Szybsze strony, nowoczesny stack
Popularne rozwiązania headless:
- Next.js + WordPress
- Gatsby + WordPress
- Nuxt + WordPress