Suche senden
Hochladen
WordPressで提供するWeb API
•
20 gefällt mir
•
7,089 views
Yuko Toriyama
Folgen
Melden
Teilen
Melden
Teilen
1 von 25
Jetzt herunterladen
Downloaden Sie, um offline zu lesen
Empfohlen
WordPressと外部APIとの連携
WordPressと外部APIとの連携
Hidekazu Ishikawa
MT meets PHP
MT meets PHP
純生 野田
The master plan ofscaling a web application
The master plan ofscaling a web application
Yusuke Wada
WordBech Osaka No.28
WordBech Osaka No.28
Kite Koga
⑯jQueryをおぼえよう!その2
⑯jQueryをおぼえよう!その2
Nishida Kansuke
jQuery Mobileカスタマイズ自由自在
jQuery Mobileカスタマイズ自由自在
yoshikawa_t
jQuery Mobileカスタマイズ自由自在 v1.2
jQuery Mobileカスタマイズ自由自在 v1.2
yoshikawa_t
jQuery Mobileバレしないモバイルサイトの作り方
jQuery Mobileバレしないモバイルサイトの作り方
yoshikawa_t
Empfohlen
WordPressと外部APIとの連携
WordPressと外部APIとの連携
Hidekazu Ishikawa
MT meets PHP
MT meets PHP
純生 野田
The master plan ofscaling a web application
The master plan ofscaling a web application
Yusuke Wada
WordBech Osaka No.28
WordBech Osaka No.28
Kite Koga
⑯jQueryをおぼえよう!その2
⑯jQueryをおぼえよう!その2
Nishida Kansuke
jQuery Mobileカスタマイズ自由自在
jQuery Mobileカスタマイズ自由自在
yoshikawa_t
jQuery Mobileカスタマイズ自由自在 v1.2
jQuery Mobileカスタマイズ自由自在 v1.2
yoshikawa_t
jQuery Mobileバレしないモバイルサイトの作り方
jQuery Mobileバレしないモバイルサイトの作り方
yoshikawa_t
MT meets PHP - PHP conference Kansai 2013
MT meets PHP - PHP conference Kansai 2013
純生 野田
Inside Movable Type
Inside Movable Type
純生 野田
jQuery Mobile 最新情報 & Tips
jQuery Mobile 最新情報 & Tips
yoshikawa_t
やはりお前らのMTMLは間違っている!
やはりお前らのMTMLは間違っている!
純生 野田
WordPressとjQuery
WordPressとjQuery
Seto Takahiro
EC-CUBEプラグイン講義
EC-CUBEプラグイン講義
ria1201
⑲jQueryをおぼえよう!その5
⑲jQueryをおぼえよう!その5
Nishida Kansuke
脱コピペ!デザイナーにもわかるPHPとWP_Query
脱コピペ!デザイナーにもわかるPHPとWP_Query
Hidekazu Ishikawa
Django boodoo
Django boodoo
泰 増田
徳島OSS勉強会第四回 シラサギハンズオン 0925
徳島OSS勉強会第四回 シラサギハンズオン 0925
Yu Ito
Magento meet up Tokyo#1 for Design
Magento meet up Tokyo#1 for Design
Miho Nakano
.htaccessによるリダイレクト徹底解説
.htaccessによるリダイレクト徹底解説
Cherry Pie Web
CSSだけでもけっこうイケルTwenty Tenのカスタマイズとそこから踏み出す第一歩
CSSだけでもけっこうイケルTwenty Tenのカスタマイズとそこから踏み出す第一歩
Chieko Aihara
WordPressプラグイン作成入門
WordPressプラグイン作成入門
Yuji Nojima
Ci tutorial
Ci tutorial
Kazuaki Ueda
swooleを試してみた
swooleを試してみた
Yukihiro Katsumi
Word press34
Word press34
BREN
3ヶ月でリア充大学生がFBアプリをリリースするまで @macrocro
3ヶ月でリア充大学生がFBアプリをリリースするまで @macrocro
Yuuki Kuroda
Wordpressで自分好みのテーマを作る
Wordpressで自分好みのテーマを作る
Takashi Uemura
jQuery Mobileの基礎
jQuery Mobileの基礎
Takashi Okamoto
Mojoliciousをウェブ制作現場で使ってみてる
Mojoliciousをウェブ制作現場で使ってみてる
jamadam
behatで始めるBDD
behatで始めるBDD
Tsutomu Chikuba
Weitere ähnliche Inhalte
Was ist angesagt?
MT meets PHP - PHP conference Kansai 2013
MT meets PHP - PHP conference Kansai 2013
純生 野田
Inside Movable Type
Inside Movable Type
純生 野田
jQuery Mobile 最新情報 & Tips
jQuery Mobile 最新情報 & Tips
yoshikawa_t
やはりお前らのMTMLは間違っている!
やはりお前らのMTMLは間違っている!
純生 野田
WordPressとjQuery
WordPressとjQuery
Seto Takahiro
EC-CUBEプラグイン講義
EC-CUBEプラグイン講義
ria1201
⑲jQueryをおぼえよう!その5
⑲jQueryをおぼえよう!その5
Nishida Kansuke
脱コピペ!デザイナーにもわかるPHPとWP_Query
脱コピペ!デザイナーにもわかるPHPとWP_Query
Hidekazu Ishikawa
Django boodoo
Django boodoo
泰 増田
徳島OSS勉強会第四回 シラサギハンズオン 0925
徳島OSS勉強会第四回 シラサギハンズオン 0925
Yu Ito
Magento meet up Tokyo#1 for Design
Magento meet up Tokyo#1 for Design
Miho Nakano
.htaccessによるリダイレクト徹底解説
.htaccessによるリダイレクト徹底解説
Cherry Pie Web
CSSだけでもけっこうイケルTwenty Tenのカスタマイズとそこから踏み出す第一歩
CSSだけでもけっこうイケルTwenty Tenのカスタマイズとそこから踏み出す第一歩
Chieko Aihara
WordPressプラグイン作成入門
WordPressプラグイン作成入門
Yuji Nojima
Ci tutorial
Ci tutorial
Kazuaki Ueda
swooleを試してみた
swooleを試してみた
Yukihiro Katsumi
Word press34
Word press34
BREN
3ヶ月でリア充大学生がFBアプリをリリースするまで @macrocro
3ヶ月でリア充大学生がFBアプリをリリースするまで @macrocro
Yuuki Kuroda
Wordpressで自分好みのテーマを作る
Wordpressで自分好みのテーマを作る
Takashi Uemura
jQuery Mobileの基礎
jQuery Mobileの基礎
Takashi Okamoto
Was ist angesagt?
(20)
MT meets PHP - PHP conference Kansai 2013
MT meets PHP - PHP conference Kansai 2013
Inside Movable Type
Inside Movable Type
jQuery Mobile 最新情報 & Tips
jQuery Mobile 最新情報 & Tips
やはりお前らのMTMLは間違っている!
やはりお前らのMTMLは間違っている!
WordPressとjQuery
WordPressとjQuery
EC-CUBEプラグイン講義
EC-CUBEプラグイン講義
⑲jQueryをおぼえよう!その5
⑲jQueryをおぼえよう!その5
脱コピペ!デザイナーにもわかるPHPとWP_Query
脱コピペ!デザイナーにもわかるPHPとWP_Query
Django boodoo
Django boodoo
徳島OSS勉強会第四回 シラサギハンズオン 0925
徳島OSS勉強会第四回 シラサギハンズオン 0925
Magento meet up Tokyo#1 for Design
Magento meet up Tokyo#1 for Design
.htaccessによるリダイレクト徹底解説
.htaccessによるリダイレクト徹底解説
CSSだけでもけっこうイケルTwenty Tenのカスタマイズとそこから踏み出す第一歩
CSSだけでもけっこうイケルTwenty Tenのカスタマイズとそこから踏み出す第一歩
WordPressプラグイン作成入門
WordPressプラグイン作成入門
Ci tutorial
Ci tutorial
swooleを試してみた
swooleを試してみた
Word press34
Word press34
3ヶ月でリア充大学生がFBアプリをリリースするまで @macrocro
3ヶ月でリア充大学生がFBアプリをリリースするまで @macrocro
Wordpressで自分好みのテーマを作る
Wordpressで自分好みのテーマを作る
jQuery Mobileの基礎
jQuery Mobileの基礎
Ähnlich wie WordPressで提供するWeb API
Mojoliciousをウェブ制作現場で使ってみてる
Mojoliciousをウェブ制作現場で使ってみてる
jamadam
behatで始めるBDD
behatで始めるBDD
Tsutomu Chikuba
jQuery Performance Tips – jQueryにおける高速化 -
jQuery Performance Tips – jQueryにおける高速化 -
Hayato Mizuno
Try Jetpack
Try Jetpack
Hideaki Miyake
3時間濃縮CakePHP2.1 in PHPカンファレンス北海道2012
3時間濃縮CakePHP2.1 in PHPカンファレンス北海道2012
Yusuke Ando
「スピード」と「品質」を実現するPHP開発チームの取り組み~AngularJS+FuelPHP+AspectMock~
「スピード」と「品質」を実現するPHP開発チームの取り組み~AngularJS+FuelPHP+AspectMock~
leverages_event
ウェブから情報をあつめる
ウェブから情報をあつめる
Shuhei Iitsuka
Launch a Web Service in 3 Days Using WordPress
Launch a Web Service in 3 Days Using WordPress
Kite Koga
ソーシャルアプリ勉強会(第一回資料)配布用
ソーシャルアプリ勉強会(第一回資料)配布用
Yatabe Terumasa
jQuery超入門編
jQuery超入門編
Yasuhito Yabe
Word bench長崎01「オリジナルテーマで学ぶwordpressの基本」
Word bench長崎01「オリジナルテーマで学ぶwordpressの基本」
タカシ キタジマ
Css Nite Word Press
Css Nite Word Press
Web nist
SocialWeb Conference vol.5 OpenSocial Night #2
SocialWeb Conference vol.5 OpenSocial Night #2
Nobuhiro Nakajima
Drupal8 DBに保存して読み込む
Drupal8 DBに保存して読み込む
iPride Co., Ltd.
test
test
a1yama1123
初めての Data api cms どうでしょう - 大阪夏の陣
初めての Data api cms どうでしょう - 大阪夏の陣
Yuji Takayama
WordBench京都12月、WordCampUSからのWP REST APIな話
WordBench京都12月、WordCampUSからのWP REST APIな話
Hidetaka Okamoto
[東京] JapanSharePointGroup 勉強会 #2
[東京] JapanSharePointGroup 勉強会 #2
Atsuo Yamasaki
omoon.org の裏側 〜FuelPHP の task 活用例〜
omoon.org の裏側 〜FuelPHP の task 活用例〜
Sotaro Omura
WordPress のキャッシュ機構
WordPress のキャッシュ機構
katanyan
Ähnlich wie WordPressで提供するWeb API
(20)
Mojoliciousをウェブ制作現場で使ってみてる
Mojoliciousをウェブ制作現場で使ってみてる
behatで始めるBDD
behatで始めるBDD
jQuery Performance Tips – jQueryにおける高速化 -
jQuery Performance Tips – jQueryにおける高速化 -
Try Jetpack
Try Jetpack
3時間濃縮CakePHP2.1 in PHPカンファレンス北海道2012
3時間濃縮CakePHP2.1 in PHPカンファレンス北海道2012
「スピード」と「品質」を実現するPHP開発チームの取り組み~AngularJS+FuelPHP+AspectMock~
「スピード」と「品質」を実現するPHP開発チームの取り組み~AngularJS+FuelPHP+AspectMock~
ウェブから情報をあつめる
ウェブから情報をあつめる
Launch a Web Service in 3 Days Using WordPress
Launch a Web Service in 3 Days Using WordPress
ソーシャルアプリ勉強会(第一回資料)配布用
ソーシャルアプリ勉強会(第一回資料)配布用
jQuery超入門編
jQuery超入門編
Word bench長崎01「オリジナルテーマで学ぶwordpressの基本」
Word bench長崎01「オリジナルテーマで学ぶwordpressの基本」
Css Nite Word Press
Css Nite Word Press
SocialWeb Conference vol.5 OpenSocial Night #2
SocialWeb Conference vol.5 OpenSocial Night #2
Drupal8 DBに保存して読み込む
Drupal8 DBに保存して読み込む
test
test
初めての Data api cms どうでしょう - 大阪夏の陣
初めての Data api cms どうでしょう - 大阪夏の陣
WordBench京都12月、WordCampUSからのWP REST APIな話
WordBench京都12月、WordCampUSからのWP REST APIな話
[東京] JapanSharePointGroup 勉強会 #2
[東京] JapanSharePointGroup 勉強会 #2
omoon.org の裏側 〜FuelPHP の task 活用例〜
omoon.org の裏側 〜FuelPHP の task 活用例〜
WordPress のキャッシュ機構
WordPress のキャッシュ機構
Mehr von Yuko Toriyama
好きなこと続けよう!エンゼルパイから始まった
好きなこと続けよう!エンゼルパイから始まった
Yuko Toriyama
JavaScriptでできる電力使用状況グラフ
JavaScriptでできる電力使用状況グラフ
Yuko Toriyama
5分でできる!WordPressでピンタレスト風テーマ
5分でできる!WordPressでピンタレスト風テーマ
Yuko Toriyama
カスタム投稿タイプでお菓子メーカーを登録して今日食べたお菓子にひもづけるには?
カスタム投稿タイプでお菓子メーカーを登録して今日食べたお菓子にひもづけるには?
Yuko Toriyama
WordPressでパスワード保護
WordPressでパスワード保護
Yuko Toriyama
WordPress で構築する企業サイト 〜静的ページからCMSへ〜
WordPress で構築する企業サイト 〜静的ページからCMSへ〜
Yuko Toriyama
Mehr von Yuko Toriyama
(6)
好きなこと続けよう!エンゼルパイから始まった
好きなこと続けよう!エンゼルパイから始まった
JavaScriptでできる電力使用状況グラフ
JavaScriptでできる電力使用状況グラフ
5分でできる!WordPressでピンタレスト風テーマ
5分でできる!WordPressでピンタレスト風テーマ
カスタム投稿タイプでお菓子メーカーを登録して今日食べたお菓子にひもづけるには?
カスタム投稿タイプでお菓子メーカーを登録して今日食べたお菓子にひもづけるには?
WordPressでパスワード保護
WordPressでパスワード保護
WordPress で構築する企業サイト 〜静的ページからCMSへ〜
WordPress で構築する企業サイト 〜静的ページからCMSへ〜
WordPressで提供するWeb API
1.
WordPressで提 するWeb API
提供 鳥山優子
2.
プロフィール
2 /25 • 株式会社ベクター 企画・デザイン部 • WordPress歴 4年 • 公式テーマ 配布 • WP-Furigana ふりがなを自動入力するプラグイン いままでに食べたお菓子 •いままでに食べたお菓子
3.
アジェンダ
3 /25 1. Web APIとは 2. 投稿データを取得 3. XMLを生成 4. 検索パラメータに対応 5. JSONで出力 6. まとめ
4.
4 /25 1. Web
APIとは
5.
1. Web APIとは
5 /25 Web APIの例 Facebook API Google Maps API Twitter API Yahoo! デベロッパーネットワーク 楽天ウェブサービス 顔ラボ WebAPI
6.
1. Web APIとは
6 /25 お菓子の虜 Web API http://www.sysbird.jp/toriko/webapi/
7.
7 /25 2. 投稿データを取得
8.
2. 投稿データを取得
8 /25 投稿データ *タイトル お菓子の名前 *本文 食べた感想 *カテゴリ スナック, チョコ, クッキー, 飴, せんべい , *タグ 激辛, カレー ポテトチップ, 地域限定など カレー, *カスタムフィールド 価格, メーカ, ふりがな *添付ファイル お菓子の写真 *更新日
9.
2. 投稿データを取得
9 /25 WordPressから投稿データを取得 リクエストURL リクエストURL(例) http://example.com/api/ 自分のサイト 他のサイト WordPress 投 wp- /wp-admin 稿 デ wp- /wp-content ー wp- /wp-includes タ 他のサイト 取 ・・・( ・・・(略) 得 /api
10.
2. 投稿データを取得
10 /25 /api/index.php <?PHP require_once(dirname(__FILE__) .'/../wp (__FILE__) .'/../wp-load.php'); // WordPressのループ処理 のループ処理 $myposts = get_posts(); foreach($myposts as $post){ setup_postdata($post); // 1件の投稿 ($post); } ?>
11.
11 /25 3. XMLを生成
12.
3. XMLを生成
12 /25 投稿データをもとにDOM構造を作る // DOMを作成 $dom = new DomDocument DomDocument('1.0', 'utf-8'); $dom->formatOutput = true; $xml = $dom->appendChild appendChild( $dom->createElement createElement('okashinotoriko'));
13.
3. XMLを生成
13 /25 投稿データを子要素として追加 // WordPressのループ処理 $myposts = get_posts(); foreach($myposts as $post){ setup_postdata($post); // 1件の投稿 件の投稿 // itemという子要素を作成 $item = $xml->appendChild($dom dom->createElement('item')); // itemのなかに投稿IDを追加 を追加 $item->appendChild($dom->createElement createElement('id', $post->ID)); // 続けて、提供したい項目を追加する }
14.
3. XMLを生成
14 /25 提供したい項目の例 // タイトル $item->appendChild($dom->createElement createElement('name', get_the_title())); //カスタムフィールド $price = get_post_meta($post->ID , " >ID "価格", true); $item->appendChild($dom->createElement createElement('price', $price)); // パーマリンク $item->appendChild($dom->createElement createElement('url', get_permalink())); // 本文 $item->appendChild($dom->createElement createElement( ‘comment', apply_filters('the_content get_the_content()))); the_content',
15.
3. XMLを生成
15 /25 // アイキャッチ $thumbnail = ''; if ((function_exists('has_post_thumbnail && has_post_thumbnail')) (has_post_thumbnail($result->postnumber { postnumber))) $thumbnail = get_the_post_thumbnail get_the_post_thumbnail($post->ID, 'large'); if(!empty($thumbnail)){ if(preg_match_all('//i', $thumbnail, $match)){ ', $thumbnail = $match[2][0]; $item->appendChild( createElement('image', $thumbnail)); $dom->createElement } } }
16.
3. XMLを生成
16 /25 作成したDOMよりXMLを出力 // XML出力 header('Content-Type: text/ Type: text/xml;charset=UTF-8'); echo $dom->saveXML();
17.
3. XMLを生成
17 /25 レスポンス <?xml version="1.0" encoding="utf-8"?> <okashinotoriko> <item> <id>7804</id> <name>キャラメルコーンあずきミルク味with水木しげる</name> </name> <price>79</price> <url>http://example.com/snack/caramelcornazuki/</url> content/uploads/2012/12/7804.jpg</image> <image>http://example.com/wp-content/uploads/2012/12/7804.jpg</image> <comment><p>半年も前に買ってあったのを食べた。自宅で昼食のあとに甘いものが食べたく 半年も前に買ってあったのを食べた。自宅で昼食のあとに甘いものが食べたく(略)</p></comment> </item> <item> <id>8100</id> <name>チロル(ロイヤルクイーン)</name> <price>32</price> >http://example.com/chocolate/tirolroyalstrawberry/</url> <url>http://example.com/chocolate/tirolroyalstrawberry/</url> <image>http://example.com/wp-content/uploads/2012/12/8100.jpg</image> content/uploads/2012/12/8100.jpg</image> <comment><p>ロイヤルクイーンとはイチゴの新種だろうか?ブラックの包み紙にみずみずしい赤 ロイヤルクイーンとはイチゴの新種だろうか?ブラックの包み紙にみずみずしい赤(略)</p></comment> </item> <item> <id>8092</id> <name>ポテトチップスミルクキャラメル</name> >http://example.com/snack/potatochipsmilkcaramel/</url> <url>http://example.com/snack/potatochipsmilkcaramel/</url> <image>http://example.com/wp34/wp-content/uploads/2012/12//8092.jpg</image> content/uploads/2012/12//8092.jpg</image> <comment><p>ぎざぎざカットの厚いポテチにあま~いキャラメル味。塩味なのかキャラメル味なの キャラメル味。塩味なのかキャラメル味なの(略)</p></comment> </item> </okashinotoriko>
18.
18 /25 4. 検索パラメータに対応
19.
4.検索パラメータに対応
19 /25 “hello”というキーワードで、 30件を取得したい場合 http://example.com/api/?keyword=hello&max=30
20.
4.検索パラメータに対応
20 /25 パラメータを取得 URLパラメータを取得 $param = array(); if(isset($_GET['max'])) { // 取得件数が指定されている場合 $param['showposts'] = $_GET['max']; '] } if(isset($_GET['keyword'])) { // 検索キーワードが指定されている場合 $param[‘s’] = mb_convert_encoding mb_convert_encoding($_GET[‘keyword’],'UTF-8','auto'); }
21.
3.検索パラメータに対応
21 /25 ループ条件を設定する $myposts = get_posts($param param); foreach($myposts as $post){ setup_postdata($post); // 1件の投稿 ($post); } *カテゴリ *年月 *開始位置 *取得順など…
22.
22 /25 5. JSONで出力
23.
5. JSONで出力
23 /25 PHPの関数で変換するだけ // JSON出力 $xml_obj = simplexml_load_string simplexml_load_string( $dom->saveXML()); $encode = json_encode($xml_obj xml_obj); header( "Content-Type: text/javascript charset=utf-8"); javascript; echo "callback(" .$encode .")“;
24.
5. JSONで出力
24 /25 レスポンス callback({"item":[{"id":"7804","name":"¥u30ad¥u30e3¥u30e9 u30e9¥u30e1¥u30eb¥u30b3¥u30fc¥u30f3¥u3042¥u305a¥u304d¥u 30df¥u30eb¥u30af¥u5473with¥u6c34¥u6728¥u3057¥u3052¥u308b","price":"79","url":"http: u308b","price":"79","url":"http:¥/¥/example.com¥/snack¥/ caramelcornazuki¥/","image":"http:¥/¥/example.com¥/wp- content¥/uploads¥/2012¥/12¥/7804.jpg","comment":{"p":"¥ ¥u534a¥u5e74¥u3082¥u524d¥u306b¥u8cb7¥u3063¥u3066¥u 3042¥u3063¥u305f¥u306e¥u3092¥u98df¥u3079¥u305f¥u3002 u3002¥u81ea¥u5b85¥u3067¥u663c¥u98df¥u306e¥u3042¥u3068¥ u306b¥u7518¥u3044¥u3082¥u306e¥u304c¥u98df¥u3079¥u305f u305f¥u304f(¥u7565)"}},{"id":"8100","name":"¥u30c1¥u30ed¥u 30eb(¥u30ed¥u30a4¥u30e4¥u30eb¥u30af¥u30a4¥u30fc¥u30f3)","price":"32","url":"http: u30f3)","price":"32","url":"http:¥/¥/example.com¥/chocolate¥ /tirolroyalstrawberry¥/","image":"http:¥/¥/example.com¥/wpwp- content¥/uploads¥/2012¥/12¥/8100.jpg","comment":{"p":"¥ ¥u30ed¥u30a4¥u30e4¥u30eb¥u30af¥u30a4¥u30fc¥u30f3¥u3 068¥u306f¥u30a4¥u30c1¥u30b4¥u306e¥u65b0¥u7a2e¥u3060 u3060¥u308d¥u3046¥u304b¥uff1f¥u30d6¥u30e9¥u30c3¥u30af¥u 306e¥u5305¥u307f¥u7d19¥u306b¥u307f¥u305a¥u307f¥u305a u305a¥u3057¥u3044¥u8d64(¥u7565)"}},{"id":"8092","name":"¥u3 0dd¥u30c6¥u30c8¥u30c1¥u30c3¥u30d7¥u30b9¥u30df¥u30eb u30eb¥u30af¥u30ad¥u30e3¥u30e9¥u30e1¥u30eb","url":"http:¥/ ¥/example.com¥/snack¥/potatochipsmilkcaramel¥/","image":"http: /","image":"http:¥/¥/example.com¥/wp34¥/wp- content¥/uploads¥/2012¥/12¥/¥/8092.jpg","comment":{"p":" /8092.jpg","comment":{"p":"¥u304e¥u3056¥u304e¥u3056¥u30ab¥u30c3¥u30c8¥u306e ¥u539a¥u3044¥u30dd¥u30c6¥u30c1¥u306b¥u3042¥u307e¥uff5e uff5e¥u3044¥u30ad¥u30e3¥u30e9¥u30e1¥u30eb¥u5473¥u30 02¥u5869¥u5473¥u306a¥u306e¥u304b¥u30ad¥u30e3¥u30e9 u30e9¥u30e1¥u30eb¥u5473¥u306a¥u306e(¥u7565)"}}]})
25.
25 /25 *Web APIとして *他のシステムにデータ提供 *サイト内でAjax
5. まとめ
Jetzt herunterladen