WP REST APIでWordCampサイトからセッション情報を取得する

2016年もWP REST APIとかElasticsearch APIとかAWSのAPIをぶっ叩いていきますヾ(:3ノシヾ)ノシ というわけでWordCampサイト向けにカスタマイズされているWP REST API(V […]

広告ここから
広告ここまで

目次

    2016年もWP REST APIとかElasticsearch APIとかAWSのAPIをぶっ叩いていきますヾ(:3ノシヾ)ノシ

    というわけでWordCampサイト向けにカスタマイズされているWP REST API(Version1)からいろいろデータを取ってみます。

    さっそくセッション情報を取得する

    WordCampサイトのURLに「wp-json/posts?type=wcb_session」を追加することでJSON形式のセッションデータを引っこ抜けます。
    [bash]
    % curl -XGET https://kansai.wordcamp.org/2015/wp-json/posts?type=wcb_session | jq ".[0]" (git)-[master]
    % Total % Received % Xferd Average Speed Time Time Time Current
    Dload Upload Total Spent Left Speed
    100 248k 0 248k 0 0 99460 0 –:–:– 0:00:02 –:–:– 99442
    {
    "ID": 4500,
    "title": "先取り!WordPress と PHP 7",
    "status": "publish",
    "type": "wcb_session",
    "author": {
    "ID": 13894222,
    "username": "hideokamoto",
    "name": "Okamoto Hidetaka",
    "first_name": "Okamoto",
    "last_name": "Hidetaka",
    "nickname": "hideokamoto",
    "slug": "hideokamoto",
    "URL": "https://wp-kyoto.cdn.rabify.me/",
    "avatar": "https://secure.gravatar.com/avatar/75486cbfd37125f121cf4a6c5614601c?s=96",
    "description": "",
    "registered": "2014-06-18T03:42:07+00:00",
    "meta": {
    "links": {
    "self": "https://kansai.wordcamp.org/2015/wp-json/users/13894222",
    "archives": "https://kansai.wordcamp.org/2015/wp-json/users/13894222/posts"
    }
    }
    },
    "content": "<h2>セッション概要</h2>\n<p>PHP 7 とは、今秋リリースを目指して、現在開発が進んでいる次期メジャーバージョンの PHP です。<br />\n12 年ぶりのメジャーバージョンアップとなる PHP 7 では、数々の新機能や変更が加えられています。<br />\n本セッションでは、PHP 7 の基本的な変更点について解説を行い、さらに、WordPress を PHP 7 で動かした際の影響などを検証していきます。<br />\n次世代の PHP である PHP 7 を一足先に触れてみましょう。</p>\n<div class=\"clfix\">\n<div class=\"block-left\">\n<section>\n<h3 class=\"session-place\">場所</h3>\n<p>2Fセッション講堂</p>\n</section>\n<section>\n<h3 class=\"session-time\">時間</h3>\n<p>7/26(日曜日) 16:00-16:30</p>\n</section>\n</div>\n<div class=\"block-right\">\n<section>\n<h3>登壇者プロフィール</h3>\n<div class=\"profile-box\">\n<p class=\"thumb\"><img src=\"https://0.gravatar.com/avatar/f7351ae40529bdbb639b2a727e073314?s=100&amp;d=mm&amp;r=g【変更】グラバター\" alt=\"新原 雅司\" width=\"100\" height=\"100\" class=\"alignnone size-thumbnail wp-image-478063\" /></p>\n<div class=\"inner\">\n<h4>新原 雅司</h4>\n<div class=\"more\"><a href=\"https://kansai.wordcamp.org/2015/speakers/#wcorg-speaker-shinbara\">&gt; プロフィール詳細</a></div>\n</div>\n</div>\n</section>\n</div>\n</div>\n<div class=\"btn\"><a href=\"https://kansai.wordcamp.org/2015/tickets/\">WordCamp Kansai 2015に参加登録する</a></div>\n<div class=\"sharedaddy sd-sharing-enabled\"><div class=\"robots-nocontent sd-block sd-social sd-social-icon sd-sharing\"><h3 class=\"sd-title\">共有:</h3><div class=\"sd-content\"><ul><li class=\"share-facebook\"><a rel=\"nofollow\" data-shared=\"sharing-facebook-4500\" class=\"share-facebook sd-button share-icon no-text\" href=\"https://kansai.wordcamp.org/2015/session/wordpress-and-php7/?share=facebook\" target=\"_blank\" title=\"Facebook で共有\"><span></span><span class=\"sharing-screen-reader-text\">Facebook で共有 (新しいウィンドウで開きます)</span></a></li><li class=\"share-twitter\"><a rel=\"nofollow\" data-shared=\"sharing-twitter-4500\" class=\"share-twitter sd-button share-icon no-text\" href=\"https://kansai.wordcamp.org/2015/session/wordpress-and-php7/?share=twitter\" target=\"_blank\" title=\"クリックして Twitter で共有\"><span></span><span class=\"sharing-screen-reader-text\">クリックして Twitter で共有 (新しいウィンドウで開きます)</span></a></li><li class=\"share-google-plus-1\"><a rel=\"nofollow\" data-shared=\"sharing-google-4500\" class=\"share-google-plus-1 sd-button share-icon no-text\" href=\"https://kansai.wordcamp.org/2015/session/wordpress-and-php7/?share=google-plus-1\" target=\"_blank\" title=\"クリックして Google+ で共有\"><span></span><span class=\"sharing-screen-reader-text\">クリックして Google+ で共有 (新しいウィンドウで開きます)</span></a></li><li class=\"share-pocket\"><a rel=\"nofollow\" data-shared=\"\" class=\"share-pocket sd-button share-icon no-text\" href=\"https://kansai.wordcamp.org/2015/session/wordpress-and-php7/?share=pocket\" target=\"_blank\" title=\"クリックして Pocket でシェア\"><span></span><span class=\"sharing-screen-reader-text\">クリックして Pocket でシェア (新しいウィンドウで開きます)</span></a></li><li class=\"share-tumblr\"><a rel=\"nofollow\" data-shared=\"\" class=\"share-tumblr sd-button share-icon no-text\" href=\"https://kansai.wordcamp.org/2015/session/wordpress-and-php7/?share=tumblr\" target=\"_blank\" title=\"クリックして Tumblr で共有\"><span></span><span class=\"sharing-screen-reader-text\">クリックして Tumblr で共有 (新しいウィンドウで開きます)</span></a></li><li class=\"share-end\"></li></ul></div></div></div>",
    "parent": null,
    "link": "https://kansai.wordcamp.org/2015/session/wordpress-and-php7/",
    "date": "2015-07-18T15:06:59",
    "modified": "2015-07-22T13:54:01",
    "format": "standard",
    "slug": "wordpress-and-php7",
    "guid": "https://kansai.wordcamp.org/2015/?post_type=wcb_session&#038;p=4500",
    "excerpt": "<p>セッション概要 PHP 7 とは、今秋リリースを目指して、現在開発が進んでいる次期メジャーバージョンの PHP です。 12 年ぶりのメジャーバージョンアップとなる PHP 7 では、数々の新機能や変更が加えられています。 本セッションでは、PHP 7 の基本的な変更点について解説を行い、さらに、WordPress を PHP 7 で動かした際の影響などを検証していきます。 次世代の PHP である PHP 7 を一足先に触れてみましょう。 場所 2Fセッション講堂 時間 7/26(日曜日) 16:00-16:30 登壇者プロフィール 新原 雅司 &gt; プロフィール詳細 WordCamp Kansai 2015に参加登録する</p>\n<div class=\"sharedaddy sd-sharing-enabled\"><div class=\"robots-nocontent sd-block sd-social sd-social-icon sd-sharing\"><h3 class=\"sd-title\">共有:</h3><div class=\"sd-content\"><ul><li class=\"share-facebook\"><a rel=\"nofollow\" data-shared=\"sharing-facebook-4500\" class=\"share-facebook sd-button share-icon no-text\" href=\"https://kansai.wordcamp.org/2015/session/wordpress-and-php7/?share=facebook\" target=\"_blank\" title=\"Facebook で共有\"><span></span><span class=\"sharing-screen-reader-text\">Facebook で共有 (新しいウィンドウで開きます)</span></a></li><li class=\"share-twitter\"><a rel=\"nofollow\" data-shared=\"sharing-twitter-4500\" class=\"share-twitter sd-button share-icon no-text\" href=\"https://kansai.wordcamp.org/2015/session/wordpress-and-php7/?share=twitter\" target=\"_blank\" title=\"クリックして Twitter で共有\"><span></span><span class=\"sharing-screen-reader-text\">クリックして Twitter で共有 (新しいウィンドウで開きます)</span></a></li><li class=\"share-google-plus-1\"><a rel=\"nofollow\" data-shared=\"sharing-google-4500\" class=\"share-google-plus-1 sd-button share-icon no-text\" href=\"https://kansai.wordcamp.org/2015/session/wordpress-and-php7/?share=google-plus-1\" target=\"_blank\" title=\"クリックして Google+ で共有\"><span></span><span class=\"sharing-screen-reader-text\">クリックして Google+ で共有 (新しいウィンドウで開きます)</span></a></li><li class=\"share-pocket\"><a rel=\"nofollow\" data-shared=\"\" class=\"share-pocket sd-button share-icon no-text\" href=\"https://kansai.wordcamp.org/2015/session/wordpress-and-php7/?share=pocket\" target=\"_blank\" title=\"クリックして Pocket でシェア\"><span></span><span class=\"sharing-screen-reader-text\">クリックして Pocket でシェア (新しいウィンドウで開きます)</span></a></li><li class=\"share-tumblr\"><a rel=\"nofollow\" data-shared=\"\" class=\"share-tumblr sd-button share-icon no-text\" href=\"https://kansai.wordcamp.org/2015/session/wordpress-and-php7/?share=tumblr\" target=\"_blank\" title=\"クリックして Tumblr で共有\"><span></span><span class=\"sharing-screen-reader-text\">クリックして Tumblr で共有 (新しいウィンドウで開きます)</span></a></li><li class=\"share-end\"></li></ul></div></div></div>",
    "menu_order": 0,
    "comment_status": "closed",
    "ping_status": "closed",
    "sticky": false,
    "date_tz": "Etc/GMT+9",
    "date_gmt": "2015-07-18T06:06:59",
    "modified_tz": "Etc/GMT+9",
    "modified_gmt": "2015-07-22T04:54:01",
    "meta": {
    "links": {
    "self": "https://kansai.wordcamp.org/2015/wp-json/posts/4500",
    "author": "https://kansai.wordcamp.org/2015/wp-json/users/13894222",
    "collection": "https://kansai.wordcamp.org/2015/wp-json/posts",
    "replies": "https://kansai.wordcamp.org/2015/wp-json/posts/4500/comments",
    "version-history": "https://kansai.wordcamp.org/2015/wp-json/posts/4500/revisions"
    }
    },
    "terms": {
    "wcb_track": [
    {
    "ID": 23,
    "name": "2Fセッション講堂",
    "slug": "2f%e3%82%bb%e3%83%83%e3%82%b7%e3%83%a7%e3%83%b3%e8%ac%9b%e5%a0%82",
    "description": "",
    "taxonomy": "wcb_track",
    "parent": null,
    "count": 18,
    "link": "https://kansai.wordcamp.org/2015/track/2f%e3%82%bb%e3%83%83%e3%82%b7%e3%83%a7%e3%83%b3%e8%ac%9b%e5%a0%82/",
    "meta": {
    "links": {
    "collection": "https://kansai.wordcamp.org/2015/wp-json/taxonomies/wcb_track/terms",
    "self": "https://kansai.wordcamp.org/2015/wp-json/taxonomies/wcb_track/terms/460538"
    }
    }
    }
    ]
    },
    "post_meta": [
    {
    "ID": 20627,
    "key": "_wcpt_session_time",
    "value": "1437928200"
    },
    {
    "ID": 20628,
    "key": "_wcpt_session_type",
    "value": "session"
    }
    ],
    "speaker": null
    }
    [/bash]
    特筆すべきなのはtermsとpost_metaの値でしょうか。

    一旦ここだけ抜き出してみましょう。
    [js]

    "terms": {
    "wcb_track": [
    {
    "ID": 23,
    "name": "2Fセッション講堂",
    "slug": "2f%e3%82%bb%e3%83%83%e3%82%b7%e3%83%a7%e3%83%b3%e8%ac%9b%e5%a0%82",
    "description": "",
    "taxonomy": "wcb_track",
    "parent": null,
    "count": 18,
    "link": "https://kansai.wordcamp.org/2015/track/2f%e3%82%bb%e3%83%83%e3%82%b7%e3%83%a7%e3%83%b3%e8%ac%9b%e5%a0%82/",
    "meta": {
    "links": {
    "collection": "https://kansai.wordcamp.org/2015/wp-json/taxonomies/wcb_track/terms",
    "self": "https://kansai.wordcamp.org/2015/wp-json/taxonomies/wcb_track/terms/460538"
    }
    }
    }
    ]
    },
    "post_meta": [
    {
    "ID": 20627,
    "key": "_wcpt_session_time",
    "value": "1437928200"
    },
    {
    "ID": 20628,
    "key": "_wcpt_session_type",
    "value": "session"
    }
    ],
    [/js]
    はい。
    termsの中には登壇する場所(トラック)情報が入っています。
    post_metaの「”key”: “_wcpt_session_time”」という値をみると、セッションの開始時間がunixのタイムスタンプ形式で入っています。

    post_metaなどはWP REST APIそのままでは出てこない値(なはず)ですので、興味がある方はWordPress/meta-environmentを立ち上げてみてソースコードなどを見てみるといいかもしれません。

    「wordcamp.dev/public_html/wp-content/mu-plugins/wcorg-json-api.php」というファイルにいろいろ載っている様子です。

    もっとも、Version1を使っていますのでVersion2にはそのまま使えないということは要注意です。

    広告ここから
    広告ここまで
    Home
    Search
    Bookmark