WordPress REST API
Něco málo k WordPress REST API…
Článek budu rozšiřovat, jak přijde další info pod ruku.
Co to je WP API
Je to prostředí, které vám zpřístupní možnost publikace, úpravy nebo čtení obsahu na dálku, třeba v rámci nějakého dalšího systému.
Jak využít WordPress API
V podstatě jakkoliv.
WP API vám umožní vytvářet obsah, upravovat stávající, nahrávat obrázky na web, prostě cokoliv normálně děláte uvnitř vaši wordpress instalace.
Možná se ptáte, vždyť to může dělat pořád a nepotřebuju nic řešit.
A máte pravdu, ale pokud se rádi v něčem šťouráte a přemýšlíte třeba jak mít všechny vaše weby (obsah) na jednom místě, tak WP API je třeba řešením.
Asi nejsilnější využití mě napadá:
Ovládejte publikaci obsahu napříč vašimi weby s vašeho vlastního dashboardu, který poběží pomocí WP API.
Nebo přijděte na vlastní použtí, kdž objevíte, co to umí.
V posledním projektu jsem teprve přišel na moc, která se v WP REST API skrývá. Stahujeme své příspěvky, upravíme si je a posíláme upravené zpátky.
(Přemýšlejte o tom takto: máte třeba 15 webů, kde píšete že doprava je zdarma, napříč x články. Ideálně držíte-li tuto informaci v jednom formátu nebo jako custom fields. Takto ji změníte ve vašem dashboardu a skrz API wordpressu se změna propíše všude. – Je nutné však to mít nějak upravené k tomuto)
Skvělé využití WP REST API představuje StoryChief (psal jsem v něm i tento článek).
WordPress API jako backend pro Vue nebo React?
Pokud jste naskočili na vlnu moderního JS jako to zkouším já, tak věřte, že můžete místo programování vlastního backendu a věcí okolo, pro rychlý start použít klidně toto WordPress API a frontend servírovat ve Vue nebo Reactu.
Než řešit tutoriály s Hello World a být zaseklý, že nevíte jak pořešit databázi nebo backend technologií, tak je lepší tahat si svá data z WordPress API a zkoušet si to tam.
Vznikla na to řada tutoriálu, jak propojit WordPress s VueJS, tak už netvořme další tutoriál na ToDo list, ale postavte si aplikaci, kterou skutečně chcete 🙂
Endpointy na volání
Kompletní výpis a “handbook” najdete na webu wordpressu.
Nejčastější endpointy pro má volání:
- /wp/v2/posts
- /wp/v2/pages
- /wp/v2/media
- /wp/v2/[custom_post_type]
Vše funguje s POST/GET/DELETE a PUT metodou volání.
WP API je třeba však povolit, často jej může blokovat nějaký bezpečnostní plugin.
Celkem jednoduché řízení je pomocí pluginu WP REST API Controller. Používáte-li pluginy pro tvorbu vlastních fields a typu obsahu, najdete často volbu “show_in_rest_api” tam.
Užitečné pluginy
Krom zmíněného se podívejte na Json authentifikator (pro zjednodušení přihlášení skrz API – není to úplně doporučený způsob) a WP API Yoast meta (používáte li yoast a potřebujete pracovat s jejich meta fields).
Jak nahrávat obrázky přes WP API
Chvíli jsem hledal řešení a došel jsem k tomuto:
$apiPath = 'http://web.cz/wp-json/wp/v2/media/'; $file = file_get_contents($imageUrl); $ch = curl_init(); $username = 'username'; $password = 'password'; curl_setopt( $ch, CURLOPT_URL, $apiPath ); curl_setopt( $ch, CURLOPT_POST, 1 ); curl_setopt( $ch, CURLOPT_POSTFIELDS, $file ); curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt( $ch, CURLOPT_HTTPHEADER, [ 'Content-Disposition: form-data; filename="obrazek.jpg"', 'Authorization: Basic ' . base64_encode( $username . ':' . $password ), ] ); $result = curl_exec( $ch ); curl_close( $ch ); $media = json_decode( $result );
Je to psáno pro curl, ale určitě můžete použít jiné knihovny.