WordPressテーマチェッカーでエラーの出ないPocketストックカウントの取得方法

サイバーマンデー
Amazonプライム会員限定の大セール「サイバーマンデー」開催中!プライム会員限定の大セール

前回、Wordpressのテーマチェッカーでもエラーの出ないGoogle+のカウント取得方法を書きました。

Wordpressテーマチェッカーでエラーの出ないGoogle+共有カウントの取得方法
最近知ったんですが、Yahoo! Pipesが9月30日でサービス停止となるようです。 Yahoo Pipesを使った開発は今年の8月...

今回はそれのPocketバージョンです。

PocketもGoogle+と同様に、カウント取得用のAPIがありません。なので、ボタン表示用のHTMLを取得してそこから、カウント部分のみを抽出する必要があります。

photo by Heisenberg Media

スポンサーリンク
レクタングル(大)広告

Pocketでストックカウントの取得方法

Pocketでカウントを取得するには、PocketサーバーからカウントボタンのHTMLを取得する必要があります。

ただ、PHPで取得するようにfile_get_contentsをWordpress上で使用すると、Wordpressのテーマチェッカーで警告が出るので、別の手段をとりたいと思います。

今回は、WP_FileSystemのget_contentsメソッドを使って、外部ソースを取得したいと思います。

Google+で取得したときと同じようにwp_remote_get関数を用いても、テーマバリデーションでエラーは出ないと思います。どちらの方法でもOKかと思います。

functions.phpの編集

まずは、functions.phpにPocketのストックカウントを取得するための関数を書きます。

以下では、Wordpressファイルシステム(WP_Filesystem)を呼び出すためのライブラリを読み込んでいます。

WP_Filesystemから、Pocketボタンのソースさえ読み込んでしまえば、あとはxpathでも正規表現でも何でも良いので、カウント部分のテキストを取得します。

参考 WordPressでソーシャルメディアのカウント数を取得して表示する方法

WP_Filesystem不要のシンプルな書き方

wp_remote_get()でHTMLを取得後、正規表現で取得するには以下のように書きます。

こちらの方がコード量が少なく、スッキリと書けるかもしれません。

WP_Filesystemを使った方法と、wp_remote_getを使った方法は、どちらともテーマチェッカーでエラーは出ないので、好みの方を利用してください。

カウント表示部分の編集

あとは、Pocketのストックカウント数を表示したい場所に、以下のように呼び出しコードを書くだけです。

例えば、single.phpでカウント数を取得したければ、以下のように書きます。

コードを埋め込んだ場所に、そのページのPocketストック数が表示されます。

まとめ

今回のWordpress関数を利用した書き方だと、テーマチェッカーで警告され、20点減点されることはありません。

テーマバリデーションが満点

ただ別に、テーマチェッカーで、減点されたからといって、自分で使う分には全く問題ないかと思います。

何か、テーマなどを配布していて、なるべくバリデーションで減点されていないものを配布したいというときには、今回の書き方だと警告が出て減点されることはないと思います。(※テーマチェッカーの仕様が変わらない限りは)

今回は、Wordpress関数とPHPで、直接カウントを取得する方法を書きましたが、Ajaxで取得する方法をまた別の記事で書きたいと思います。

追記:クロスドメイン制約を回避したAjaxでのカウントの取得方法です。

Pocketのストック数をAjaxで非同期に取得するWordPressカスタマイズ方法
先日、PHPとWordpress関数を利用して、テーマチェッカーでもエラーが出ない「Pocketストック数取得関数」を書きました。 今回...

その他のAPIが利用できないソーシャルボタンのカウント取得方法は以下。

Wordpressテーマチェッカーでエラーの出ないGoogle+共有カウントの取得方法
最近知ったんですが、Yahoo! Pipesが9月30日でサービス停止となるようです。 Yahoo Pipesを使った開発は今年の8月...
feedlyの購読者カウントの取得方法。Yahoo! PipesからAjaxでの取得拒否対策
以前feedlyの購読者数を「Yahoo! Pipes(サービス終了)」を経由して、Ajaxで取得する方法を書きました。 ただこの...