Transcript
Page 1: WordCamp Gdynia 2016
Page 2: WordCamp Gdynia 2016

Synchronizacja treści między stronami na

WordPressie z wykorzystaniem

WP-APIPiotr Niewiadomski

Tech Leader

Page 3: WordCamp Gdynia 2016

Problem = Wielojęzyczność

● WPML● qTranslate● Polylang● MultilingualPress

Page 4: WordCamp Gdynia 2016

Rozwiązanie

Multisite i/lub Multiple Sites

+ WP-API

= Retrans Plugin

Page 5: WordCamp Gdynia 2016

WP RESTful API● WP-API 1.2.5● WP-API 2.0-beta13● WordPress.com REST API

(JetPack JSON API)

Page 6: WordCamp Gdynia 2016

Jak to działa?● GET - pobieranie danych● POST - dodawanie danych● PUT - edycja danych● DELETE - usuwanie danych

● /wp-json/posts/● /wp-json/posts/<id>● /wp-json/posts/<id>/meta/● /wp-json/posts/<id>/meta/<mid>● /wp-json/options/● /wp-json/options/<id>

Page 7: WordCamp Gdynia 2016

Konfiguracja● Uwierzytelnianie

Implementacja Basic Authentication

● Typy wpisówshow_in_json => true

● Obsługa JSONaBiblioteka PHP Json vs Pear Json

Page 8: WordCamp Gdynia 2016

BACKEND Lista postów

GET /wp-json/posts/możePOST /wp-json/posts/

POST /wp-json/posts/<id>/meta/lubPUT /wp-json/posts/<id>/meta/<mid>

Page 9: WordCamp Gdynia 2016

FRONTEND Pojedynczy post

https://piwik.pro => https://piwikpro.de

GET /wp-json/post/<id>GET /wp-json/options/<id>

Page 10: WordCamp Gdynia 2016

Meta Dane● Transport obiektów poprzez JSON

(brak nazwy obieku)● Problem serializacji

(brak definicji klasy)● Whitelista danych

Page 11: WordCamp Gdynia 2016

Opcje● Brak wsparcia dla opcji● Whitelista opcji

Page 12: WordCamp Gdynia 2016

Bezpieczeństwo● Tylko wewnętrzne Requesty serwera● Dwustronna weryfikacja● Basic Authentication● Brak wsparcia dla OAuth :(

Page 13: WordCamp Gdynia 2016

Prędkość● Wolne Requesty● Cache● Multisite może DB?

Page 14: WordCamp Gdynia 2016

Out of the box● Plugin API● Options API● Settings API● HTTP API● Rewrite API● Metadata API

Page 15: WordCamp Gdynia 2016

PodsumowanieBrak wsparcia dla OAuthBrak wsparcia dla opcjiProblem z natywną biblioteką JSON w PHPProblem serializacji obiektów

Register Post Type● show_in_json => true

Basic Authentication Plugin● zła kolejność● nie ustawianie użytkownika po zalogowaniu


Top Related