SlideShare a Scribd company logo
WORDCAMP US参加レポート
WORDBENCH京都12月
WORDCAMP US参加レポート
~という名のWP REST APIの話~
WORDBENCH京都12月
WORDCAMP US
2015/12/04~12/06
実はあんまり
セッション聞いてない
WordBench京都12月、WordCampUSからのWP REST APIな話
WordBench京都12月
WORDCAMP US2015私的サマリー
▸わぷー人気過ぎ
▸WordPress.com API
▸WP REST API
▸WP REST API
GLOBAL
WAPUU
わぷー人気出過ぎ
WORDBENCH京都12月テキスト
わぷーってなに?
▸ 日本語版公式キャラクター
▸ カネウチカズコさんによるデザイン
▸ GPL v2で利用可能
▸ ご当地わぷーが沢山いる
▸ 2014年末頃から海外でブームに
▸ (ボールは齧ってるらしい)
https://ja.wordpress.org/about-wp-ja/wapuu/
WordBench京都12月
http://jawordpressorg.github.io/wapuu/
WordBench京都12月
GitHubに世界中のわぷーが登録されている
https://github.com/jawordpressorg/wapuu
WordBench京都12月
突如現れたファンサイト
http://wapuu.jp/
WordBench京都12月、WordCampUSからのWP REST APIな話
WordBench京都12月
スペースわぷー
http://wapuu.amimoto-ami.com/
WordBench京都12月、WordCampUSからのWP REST APIな話
WordPress.com
API
すべては
ここからはじまった
CALYPSO
WordBench京都12月、WordCampUSからのWP REST APIな話
WordBench京都12月
CALYPSO
▸ React + WordPress.com API
▸ WordPressのダッシュボードアプリ
▸ UIはWordPress.com風
▸ https://developer.wordpress.com/calypso/
▸ https://github.com/Automattic/wp-calypso
WordBench京都12月、WordCampUSからのWP REST APIな話
https://developer.wordpress.com/docs/api/
WordBench京都12月
WORDPRESS.COM REST API
▸ WordPress.comのAPI
▸ JetPackやCalypsoで使用
▸ .orgで使うにはJetPackが必要
▸ WP REST APIとは別物なので要注意
▸ https://developer.wordpress.com/docs/api/
WordBench京都12月
WP REST APIと混同すると辛くなる
▸ WP REST APIと.com APIは別物
▸ WP REST APIもv1とv2は別物
▸ 「WP API」という別物のプラグインもある
▸ 試す時には「どれを使うのか」を確認しよう!
WordBench京都12月
プラグイン対応表
API名 プラグイン名 URL 備考
.com API JetPack
https://wordpress.org/
plugins/jetpack/
.comアカウント
必須
WP REST
API v1
WP REST API
(WP API)
https://wordpress.org/
plugins/json-rest-api/
WP REST
API v2
WordPress REST
API (Version 2)
https://wordpress.org/
plugins/rest-api/
一部コア実装
(WP4.4~)
WP API WP API
https://wordpress.org/
plugins/wp-api/
4年以上
メンテなし
WP-API
ついにコア実装
WordBench京都12月
ここで書くネタ
▸ WP APIとは? WordPressのコア部分のAPI
▸ プラグインで開発されていて、今はVersion2
▸ WP4.2に入ると言われてから約1年、ついにコア実装
▸ OmEmbedで使われてる、camp.orgはv1カスタマイズ
▸ ただし自分で使うにはプラグイン必要よ
▸ V1とV2の違いを一部紹介(フック・エンドポイント)
WordBench京都12月
WP REST APIとは?
▸ WordPressのコア部分のAPI
▸ 投稿 / 固定ページ / メディア / ユーザー / etc..
▸ WordPress4.2でコアに入ると言われてから約1年
▸ WP4.4で一部機能がコアに実装
▸ 全機能を使うにはプラグインが必要
WordBench京都12月
WordPress4.4 コアに実装されたREST API
▸ oEmbedを実装するためのAPI
▸ 今まで話題になっていたAPIエンドポイントは入ってない
▸ ただしフックなどは追加されているので
 オリジナルのエンドポイントを追加することは可能
WordBench京都12月
WordPress4.4 コアで使えるエンドポイント
▸ /wp-json/
▸ WP APIに関する各種情報をとれるエンドポイント
▸ /wp-json/oembed/1.0
▸ oEmbed用APIに関する情報をとれるエンドポイント
▸ /wp-json/oembed/1.0/embed
▸ oEmbedで実際に使われているエンドポイント
oEmbedしか
使えない
WordBench京都12月
WPRESTAPIv2を入れると使えるエンドポイント(一部)
▸ /wp-json/wp/v2/       :ルート情報
▸ /wp-json/wp/v2/categories  :カテゴリ
▸ /wp-json/wp/v2/media    :メディア
▸ /wp-json/wp/v2/pages    :固定ページ
▸ /wp-json/wp/v2/posts     :投稿
▸ /wp-json/wp/v2/tags     :タグ
▸ /wp-json/wp/v2/taxonomies  :タクソノミー
▸ /wp-json/wp/v2/users     :ユーザー
使える
メソッドなど
http://v2.wp-api.org/
ドキュメント読むの
めんどくさい
Hidetaka Okamoto
WordBench京都12月
そんな時の
ルートエンドポイント
curl -X GET 
http://example.com/wp-json/wp/v2/ 
| jq .
WordBench京都12月、WordCampUSからのWP REST APIな話
WordBench京都12月
WordPress4.4 コアで使えるエンドポイント
"/wp/v2/comments": {
"namespace": "wp/v2",
"methods": [ "GET", "POST" ],
"endpoints": [
{
"methods": [ "GET" ],
"args": {
"context": {
"required": false,
"default": "view",
"enum": [ "view", "embed", "edit" ],
"description": "Scope under which the request is made; determines fields present
in response."
},
"page": {
WordBench京都12月
エンドポイントのURL
"/wp/v2/comments": {
"namespace": "wp/v2",
"methods": [ "GET", "POST" ],
"endpoints": [
{
"methods": [ "GET" ],
"args": {
"context": {
"required": false,
"default": "view",
"enum": [ "view", "embed", "edit" ],
"description": "Scope under which the request is made; determines fields present
in response."
},
"page": {
WordBench京都12月
このエンドポイントで使えるメソッド
"/wp/v2/comments": {
"namespace": "wp/v2",
"methods": [ "GET", "POST" ],
"endpoints": [
{
"methods": [ "GET" ],
"args": {
"context": {
"required": false,
"default": "view",
"enum": [ "view", "embed", "edit" ],
"description": "Scope under which the request is made; determines fields present
in response."
},
"page": {
WordBench京都12月
GETで使えるクエリとその説明
"/wp/v2/comments": {
"namespace": "wp/v2",
"methods": [ "GET", "POST" ],
"endpoints": [
{
"methods": [ "GET" ],
"args": {
"context": {
"required": false,
"default": "view",
"enum": [ "view", "embed", "edit" ],
"description": "Scope under which the request is made; determines fields present
in response."
},
"page": {
curlとjq使えると
いろいろ る
WordBench京都12月、WordCampUSからのWP REST APIな話
WordBench京都12月
var url = 'http://wp-kyoto.net/wp-json/';
$.ajax({
url: url + ‘wp/v2/posts', type:’GET’, dataType: 'json',
data : { filter: { s: ‘wp-api', posts_per_page: 5 }
},
timeout:10000,
}).done(function(datas) {
for (var i = datas.length - 1; i >= 0; i--) {
var post_url = datas[i]['link'];
$.ajax({
url: url + 'oembed/1.0/embed?url='+ post_url,
type:’GET', dataType: ‘json', timeout:10000,
}).done(function(data) {$('#ajax').append(data['html']);
}).fail(function(data) { $('#ajax').append('fail');});
}
}).fail(function(datas) {
$('#ajax').append('fail');
});
WordBench京都12月
var url = 'http://wp-kyoto.net/wp-json/';
$.ajax({
url: url + ‘wp/v2/posts', type:’GET’, dataType: 'json',
data : { filter: { s: ‘wp-api', posts_per_page: 5 }
},
timeout:10000,
}).done(function(datas) {
for (var i = datas.length - 1; i >= 0; i--) {
var post_url = datas[i]['link'];
$.ajax({
url: url + 'oembed/1.0/embed?url='+ post_url,
type:’GET', dataType: ‘json', timeout:10000,
}).done(function(data) {$('#ajax').append(data['html']);
}).fail(function(data) { $('#ajax').append('fail');});
}
}).fail(function(datas) {
$('#ajax').append('fail');
});
POSTSを取得するAPIから記事データを5件取得
WordBench京都12月
var url = 'http://wp-kyoto.net/wp-json/';
$.ajax({
url: url + ‘wp/v2/posts', type:’GET’, dataType: 'json',
data : { filter: { s: ‘wp-api', posts_per_page: 5 }
},
timeout:10000,
}).done(function(datas) {
for (var i = datas.length - 1; i >= 0; i--) {
var post_url = datas[i]['link'];
$.ajax({
url: url + 'oembed/1.0/embed?url='+ post_url,
type:’GET', dataType: ‘json', timeout:10000,
}).done(function(data) {$('#ajax').append(data['html']);
}).fail(function(data) { $('#ajax').append('fail');});
}
}).fail(function(datas) {
$('#ajax').append('fail');
});
oEmbedのAPIをAjaxで呼び出す
WordBench京都12月
var url = 'http://wp-kyoto.net/wp-json/';
$.ajax({
url: url + ‘wp/v2/posts', type:’GET’, dataType: 'json',
data : { filter: { s: ‘wp-api', posts_per_page: 5 }
},
timeout:10000,
}).done(function(datas) {
for (var i = datas.length - 1; i >= 0; i--) {
var post_url = datas[i]['link'];
$.ajax({
url: url + 'oembed/1.0/embed?url='+ post_url,
type:’GET', dataType: ‘json', timeout:10000,
}).done(function(data) {$('#ajax').append(data['html']);
}).fail(function(data) { $('#ajax').append('fail');});
}
}).fail(function(datas) {
$('#ajax').append('fail');
});
oEmbedのAPIをAjaxで呼び出す
WordBench京都12月
var url = 'http://wp-kyoto.net/wp-json/';
$.ajax({
url: url + ‘wp/v2/posts', type:’GET’, dataType: 'json',
data : { filter: { s: ‘wp-api', posts_per_page: 5 }
},
timeout:10000,
}).done(function(datas) {
for (var i = datas.length - 1; i >= 0; i--) {
var post_url = datas[i]['link'];
$.ajax({
url: url + 'oembed/1.0/embed?url='+ post_url,
type:’GET', dataType: ‘json', timeout:10000,
}).done(function(data) {$('#ajax').append(data['html']);
}).fail(function(data) { $('#ajax').append('fail');});
}
}).fail(function(datas) {
$('#ajax').append('fail');
});
oEmbedのAPIでとれたHTMLを挿入する
https://feelingrestful.com/
WordBench京都12月、WordCampUSからのWP REST APIな話
WordBench京都12月、WordCampUSからのWP REST APIな話
WordBench京都12月、WordCampUSからのWP REST APIな話
WordBench京都12月、WordCampUSからのWP REST APIな話
WP-API
結局どう使うのさ?
で、WP REST APIとやらは
どう使えと?
Someone
WordBench京都12月
WordBench京都12月
WP REST API × SOMETHING
▸ WP REST API × Plugins
▸ WP REST API × Themes
▸ WP REST API × Application
▸ WP REST API × Other API
▸ WP REST API × Internet Of Things
WordBench京都12月
WP REST API × PLUGINS
▸ WP REST APIを使ったプラグイン
▸ 非同期検索
▸ 記事埋め込みショートコード
▸ ユーザー登録・コメント投稿機能
https://wordpress.org/plugins/wp-search-live/
http://wp-kyoto.net/using-wp-api-shortcode-wbnara/
WordBench京都12月、WordCampUSからのWP REST APIな話
WP REST API v1
なので要注意
WordBench京都12月
WP REST API × THEMES
▸ WP REST API を使ったWordPressテーマ
▸ WP REST API v2必須のテーマは公式OK
▸ Reactやbackboneでテーマを作る?
▸ PHPなしでテーマ作成も可能
wptavern.com/anadama-an-example-wordpress-recipe-theme-based-on-react
http://media-assembly-kit.com/ja/
https://github.com/Automattic/Picard
PHP苦手でもJS書ければ
公式ディレクトリに
テーマをあげれるように
WordBench京都12月
WP REST API × APPLICATION
▸ WP REST APIを使ったアプリケーション
▸ ユーザー・投稿・メディアなどを管理
▸ WordPress をアプリケーションFW化する
WordBench京都12月、WordCampUSからのWP REST APIな話
http://www.happytables.com/
https://nomadbase.io/
WordBench京都12月
WP REST API × IOT
▸ Internet Of Things(モノのインターネット)
▸ マイコンからWP REST APIを使用する
▸ 「GUIすら存在しないWordPress」
https://ja.wordpress.org/plugins/littlebits/
https://ja.wordpress.org/plugins/littlebits/
WordBench京都12月、WordCampUSからのWP REST APIな話
WordPressの
リアルダッシュボード
WordBench京都12月、WordCampUSからのWP REST APIな話
WordBench京都12月、WordCampUSからのWP REST APIな話
他Webサービスから
WordPressを更新
WordBench京都12月、WordCampUSからのWP REST APIな話
https://developer.amazon.com/appsandservices/solutions/alexa/alexa-skills-kit/docs/developing-an-alexa-
skill-as-a-lambda-function
音声入力から
AWS経由で
WodPressを操作
WordBench京都12月、WordCampUSからのWP REST APIな話
WordBench京都12月、WordCampUSからのWP REST APIな話
WordBench京都12月、WordCampUSからのWP REST APIな話
WordBench京都12月、WordCampUSからのWP REST APIな話
WordBench京都12月
ここで書くネタ
▸ WordCamp USのセッションから活用アイディアを紹介
▸ テーマに使う  _s+backbone / React 他GitHubサンプル
▸ プラグインとして使う 検索・関連記事
▸ 管理画面に使う OAuth認証、HappyTable
▸ あぷりけーしょん nomadobase、
▸ Internet Of Things Alexa,littlebits,IFTTT
まとめ
さらばPHP・・・?
LEARN JAVASCRIPT DEEPLY.
Matt Mullenweg
WordBench京都12月
だけど、
PHPは
無くならない
WordBench京都12月
WP REST APIは万能薬ではない
▸ WP REST APIでは取れないデータも多い
▸ メニュー・ウィジェット・基本設定etc..
▸ APIをいっぱい使う=サーバー負荷上がる
▸ レガシーブラウザの悪夢
▸ APIのカスタマイズ=PHPを書く
WordBench京都12月
WordPress関数との協力プレイ
▸ APIで取れないものはPHPで
▸ APIでとれるものはJavaScript
▸ サーバーとブラウザでの処理の分散
▸ 遅延読み込みや仮想DOMの活用
WordBench京都12月
管理画面の設定を活かす
▸ get_options()でデータ取得
▸ HTMLのdata属性に出力
▸ JSで取得してAPI処理に利用
▸ http://wp-kyoto.net/wp-rest-api-get-posts-per-page/
WebComponent
というまだ見ぬ未来
WordBench京都12月
WEBCOMPONENT+WP REST API
▸ HTMLの要素を「パーツ化」して独自タグにできる
▸ うまく使えばJavaScriptすらほとんど書かずに済む
▸ フロントエンドをComponent化
▸ Componentを仕様に合わせて並べていく
▸ あとはWP REST APIからデータを流し込むだけ
なんて将来が
きたらいいよね
WordBench京都12月、WordCampUSからのWP REST APIな話
WordBench京都12月、WordCampUSからのWP REST APIな話
WordBench京都12月、WordCampUSからのWP REST APIな話
時間が余ったら
US参加組を巻き込ます
Hidetaka Okamoto
WordBench京都12月

More Related Content

PDF
How Smalltalker Works
PDF
ReVIEWとLibreOfficeとOMakeで本を書きましょう!
PDF
ソーシャルアプリ勉強会(第一回資料)配布用
KEY
Wight: Phantom’s Perl friend - YAPC::Asia 2012
PDF
⑲jQueryをおぼえよう!その5
PDF
AWS SDK for Smalltalk
PDF
WordPress関数の処理コストを考えよう
PPT
081108huge_data.ppt
How Smalltalker Works
ReVIEWとLibreOfficeとOMakeで本を書きましょう!
ソーシャルアプリ勉強会(第一回資料)配布用
Wight: Phantom’s Perl friend - YAPC::Asia 2012
⑲jQueryをおぼえよう!その5
AWS SDK for Smalltalk
WordPress関数の処理コストを考えよう
081108huge_data.ppt

What's hot (20)

KEY
EC-CUBEプラグイン講義
PDF
The master plan of scaling a web application
PDF
SEOとJava Script。 〜文書構造とチームと、時々、闇〜
PPTX
ウェブから情報をあつめる
ODP
webを飾る技術
PDF
WordPressで投稿記事情報の取得方法
PDF
WordPress実践 導入からカスタマイズまで
PDF
WordPressで制御するこれからのIoT
PDF
Firefox Add-on SDK 入門
PDF
はじめてのモバイルウェブアプリ 3 SPARQLハンズオン オープンデータ水位ゲーム
PDF
Symfony2 How to create your Bundle
PDF
Html5でword pressテーマを作るよ!
PDF
SPARQLから入門するLinked Open Data(LOD)ハンズオン 第2回
PPTX
HTML5&API総まくり
KEY
Web Operations and Perl kansai.pm#14
PPTX
Web 04
PDF
JavaScript/CSS 2015 Autumn
KEY
はじめてのCouch db
PPTX
クローラを作る技術と設計 (毎週のハンズオン勉強会資料)
PDF
JSON Schema と API テスト YAPC::Asia Tokyo 2014
EC-CUBEプラグイン講義
The master plan of scaling a web application
SEOとJava Script。 〜文書構造とチームと、時々、闇〜
ウェブから情報をあつめる
webを飾る技術
WordPressで投稿記事情報の取得方法
WordPress実践 導入からカスタマイズまで
WordPressで制御するこれからのIoT
Firefox Add-on SDK 入門
はじめてのモバイルウェブアプリ 3 SPARQLハンズオン オープンデータ水位ゲーム
Symfony2 How to create your Bundle
Html5でword pressテーマを作るよ!
SPARQLから入門するLinked Open Data(LOD)ハンズオン 第2回
HTML5&API総まくり
Web Operations and Perl kansai.pm#14
Web 04
JavaScript/CSS 2015 Autumn
はじめてのCouch db
クローラを作る技術と設計 (毎週のハンズオン勉強会資料)
JSON Schema と API テスト YAPC::Asia Tokyo 2014
Ad

Similar to WordBench京都12月、WordCampUSからのWP REST APIな話 (20)

PDF
WordPress APIで作るモバイルアプリ
PDF
WP REST API の活用事例と今後
PDF
WordPress REST API とリアクティブプログラミング
PDF
OSC北海道 2016 REST API を活用した、新しい WordPress サイト製作手法
PDF
WP-APIを使ってみよう&No PHPテーマという考え方
PDF
WordPressAPI
PDF
20150704cmsdou
PDF
RとWeb API
PDF
カスタム投稿タイプ&カスタムタクソノミーの使い方 #wbNagano
PPT
OSC2008 Tokyo/Spring REST勉強夜会
PDF
中級者のためのWordPress講座[第4回]WordPressと外部のWEBAPIと連携させてみよう!
PDF
WordCamp Tokyo2016itkaasan
PPT
Tokyowebmining5 yokkuns
PDF
Webフレームワークを作ってる話 #osakapy
PPTX
2013年のWordBench神戸
PPTX
BYE-BYE!! ASP.NET MVC,Hello! ASP.NET SPA~ASP.NET WEB API & ASP.NET CORE WITH ...
PDF
クロスドメインアクセスを理解してWeb APIを楽しく使おう
PDF
WordPress REST API と Vue.js を使ったフロントエンド開発
PDF
Fukuokapm20140920 uzulla talk
PDF
Rails と Rack と HTTP と通信の話
WordPress APIで作るモバイルアプリ
WP REST API の活用事例と今後
WordPress REST API とリアクティブプログラミング
OSC北海道 2016 REST API を活用した、新しい WordPress サイト製作手法
WP-APIを使ってみよう&No PHPテーマという考え方
WordPressAPI
20150704cmsdou
RとWeb API
カスタム投稿タイプ&カスタムタクソノミーの使い方 #wbNagano
OSC2008 Tokyo/Spring REST勉強夜会
中級者のためのWordPress講座[第4回]WordPressと外部のWEBAPIと連携させてみよう!
WordCamp Tokyo2016itkaasan
Tokyowebmining5 yokkuns
Webフレームワークを作ってる話 #osakapy
2013年のWordBench神戸
BYE-BYE!! ASP.NET MVC,Hello! ASP.NET SPA~ASP.NET WEB API & ASP.NET CORE WITH ...
クロスドメインアクセスを理解してWeb APIを楽しく使おう
WordPress REST API と Vue.js を使ったフロントエンド開発
Fukuokapm20140920 uzulla talk
Rails と Rack と HTTP と通信の話
Ad

More from Hidetaka Okamoto (20)

PDF
Serverless WordPress & next Interface of WordPress
PDF
How to develop Alexa Skill Kit based on Serverless Architecture
PDF
WooCommerce & AWS
PDF
和歌山ITカーニバルAWSハンズオンスライド
PDF
YARAIYA! Opendata with WordPress
PDF
_s + bootstrapで始めるWordPressテーマ開発入門
PDF
WordPressでデータ記事書こうぜ
PDF
WordBench京都 WordPress with Linked Open Data
PDF
WordBench京都版 _sハンズオン
PDF
Word pressはじめの一歩 テーマ作成ハンズオン
PDF
How Would You Like Component Management System
PDF
なんとなくjQueryでAjaxをつかってみる
PDF
WebComponentsをPolymerとgulpとyeomanでさっくり使い始めよう
PPTX
Doctrineアカンパターン
PPTX
Phpのinterfaceを使う
PDF
やらいや!WebComponents wp-dfes03 LT
PPTX
PHPのタイプヒンティング
PDF
自分用プラグインのススメ
PDF
LODを使ったサイトとプラグインを作ってみた話[WordBenchOsaka]
PDF
びわ湖花火大会のオープンデータアプリを作ってみて
Serverless WordPress & next Interface of WordPress
How to develop Alexa Skill Kit based on Serverless Architecture
WooCommerce & AWS
和歌山ITカーニバルAWSハンズオンスライド
YARAIYA! Opendata with WordPress
_s + bootstrapで始めるWordPressテーマ開発入門
WordPressでデータ記事書こうぜ
WordBench京都 WordPress with Linked Open Data
WordBench京都版 _sハンズオン
Word pressはじめの一歩 テーマ作成ハンズオン
How Would You Like Component Management System
なんとなくjQueryでAjaxをつかってみる
WebComponentsをPolymerとgulpとyeomanでさっくり使い始めよう
Doctrineアカンパターン
Phpのinterfaceを使う
やらいや!WebComponents wp-dfes03 LT
PHPのタイプヒンティング
自分用プラグインのススメ
LODを使ったサイトとプラグインを作ってみた話[WordBenchOsaka]
びわ湖花火大会のオープンデータアプリを作ってみて

WordBench京都12月、WordCampUSからのWP REST APIな話