Simplicity2.0.1でこの記事で書かれているカスタマイズ方法を機能化しました。
先日、count.jsoonという廃止されたTwitterのシェア数(ツイート数)を取得できるAPIの存在を知りました。
で先日、このAPIを利用してPHPと組み合わせて、ツイート数を取得する方法について書きました。
ただ、この方法は、どんなテーマでもカスタマイズ出来るように、汎用的な書き方をしました。
ですので、Simplicityに適用させるには、具体的にどのようにすればよいかわからない方もおられたかと思います。
そこで、この記事では、Simplicityでどのようにカスタマイズすれば、ツイート数を表示することができるか、具体的に書きたいと思います。
なお、今回のカスタマイズは、Simplicity1.9.3以上推奨です。また、子テーマを利用したカスタマイズを想定して方法を書きます。
主な手順
count.jsoonとPHPでツイート数を取得できるようにカスタマイズするのに必要な主な手順は以下です。
- count.jsoonにウェブサイト登録
- カスタマイザーの設定
- functions.phpに関数をコピペ
- sns-button-twitter.phpで関数を呼び出す
登録してシェア数の収集を待つのが一番大変かも。
count.jsoonにウェブサイト登録
まずは、count.jsoonにウェブサイトを登録する必要があります。
登録方法については、以下に書いてあるので手順に従って登録してください。
count.jsoonは、登録してからシェア数情報を収集するので、カウントが反映するまで結構時間がかかります。(だいたい3日~10日くらい?)
カスタマイザーの設定
まずは、PHPで直接表示するのにSNSボタンは「デフォルト(サービス固有のボタン)」を
表示させます。
「外観→カスタマイズ→SNS」から「シェアボタンのタイプ(PC)」を「デフォルト(サービス固有のボタン)」に設定してください。
「サービス固有のボタン」というのは、このタイプのボタンのことです。
functions.phpに関数をコピペ
次に子テーマのfunctions.phpに以下のコードをコピペして追記します。
//count.jsoonからTwitterのツイート数を取得 function fetch_twitter_count($url){ $url = rawurlencode( $url ); $subscribers = wp_remote_get( "http://jsoon.digitiminimi.com/twitter/count.json?url=$url" ); $res = '0'; if (!is_wp_error( $subscribers ) && $subscribers["response"]["code"] === 200) { $body = $subscribers['body']; $json = json_decode( $body ); $res = ($json->{"count"} ? $json->{"count"} : '0'); } return $res; }
引数にURLを指定すると、そのURLのツイート数を返す関数です。
sns-button-twitter.phpで関数を呼び出す
次に、親テーマからsns-button-twitter.phpファイルをコピーして、子テーマフォルダ内に貼り付けてコピーファイルを作成します。
子テーマ内のsns-button-twitter.phpファイルを開いて以下の部分を探して
<span class="fa fa-comments"></span>
以下のように変更してください。
<?php echo fetch_twitter_count( get_permalink() ); ?>
すると、以前はこんな感じだったのが、
こんな感じでツイート数つきで表示されます。
まとめ
count.jsoonに登録したてならば、あとはひたすらツイート数の収集を待ちます。
数日ほどたてば、少しずつ、ツイート数が反映されるのではないかと思います。
count.jsoonで正しい数字が表示されるかわかりません。ただそれをいえば、Twitterのcount.json自体も正しい数字が出ていたわけではないけど。正しくない数字ということで、辞める理由の一つとなっていたし。
あと、count.jsoonを利用してのTwitterシェア数の表示は、Simplicityのデフォルトを機能にするつもりは今のところありません。
というのも、利用するのにサイト登録という初期設定が必要だからです。ブログの初期設定時に、設定することが多すぎると(今でも十分多いのに)、僕だったら、面倒くさくなるので、デフォルト機能にはしないと思います。
ですので、ツイート数を表示させたい場合は、各自の責任で、独自カスタマイズでお願いします。
↑上記のようなSimplicityの独自バルーンボタンや、バイラルボタンなどにツイート数を表示するには、以下の方法を行ってください。
コメント
バイラルタイプのTwitterボタンにも
数字を表示させたいのですが、どうすればよいでしょうか
こっちのカスタマイズでいけるかと思います。
Simplicityの独自Twitterボタンに非同期でツイート数を表示するカスタマイズ方法
>>わいひらさん
できました。ありがとうございます!