[ツイート数取得]ジェイソンがないなら、ジェイスーンを使えばいいじゃない?

Twitterのツイート数取得APIが終了しました。あちこちのブログ記事から「ツイート数」が消えていく…そんな世界の始まりです。

WordPressプラグインの「SNS Count Cache」をカスタマイズしてcount.jsoonというサービスを使ってツイート数を取得させてみます。

ツイート数取得終了のお知らせ

2015年9月23日頃、公式ツイートボタンを刷新して「ツイート数」が表示されないデザインが発表されたようです。

それに続いて、ツイッター開発ブログ「The Twitter Japan Developer Blog」で、「公式ツイートボタンにツイート数を表示しなく」なることと、「非公式のエンドポイントが廃止される」ことが書かれていました。

[link url=”https://blog.twitter.com/ja/2015/buttons”]

この「非公式のエンドポイント」というのが、「http://urls.api.twitter.com/1/urls/count.json」のこと。

ツイート数(count)を、JSON(JavaScript Object Notation)という形式で返してくれる「count.json」(カウント・ジェイソン)と呼ばれているAPIです。

「まだTwitterのカウントAPIで取得できているみたい?Σ(゚ロ゚)o゙→終了しました」で書いたとおり、今まではパラメータとしてURLを放り込めば「{“count”:368898,”url”:”http:\/\/www.google.co.jp\/”}」という感じでカウントが戻ってきたので、「count」→「368898」という感じで数値を取り込めました。

get-tweet

11月22日の明け方くらいからこんな感じで、エラーを返すようになっています。

sorry-count

とりあえず「サーバーが見つかりません」とか「404 Not Found」とか「403 Forbbiden」とかの「アクセスエラー」な感じではなくて、丁寧にJSON形式でエラーを返してくれています。(取得できないことには変わりは無いのですが。)

「吹き出し」とか「リスト」とか

ツイート数が取得できなくなるということで、取得できなくなる前から色んなサイトさんやWordPressテーマなどではツイート数の表示を「吹き出し」([icon name=”comments” class=”” unprefixed_class=””])に変更したり、「ツイッターアイコン」([icon name=”twitter” class=”” unprefixed_class=””])に変更したりして、「数字」の代わりになるものを表示して対応います。

当サイトはというと、「まあ、アクセスできなくなってから対処しよう…Σ(゚ロ゚)o゙」という感じで傍観。

SNSカウントをキャッシュしておくプラグイン「SNS Count Cache」を使わせていただいていたので、「APIが終わってもしばらくはキャッシュからカウントが表示されてるんじゃないかなぁΣ(゚ロ゚)o゙」なんて余裕な感じでいました。

結果としては取得エラーになってカウントがどんどん0になっていき、すべての記事のツイート数が「0」に。

「とりあえず、今流行りのリスト表示にしとくかなぁ(^-^;」ということで数字の代わりに「検索」と表示させて、クリックするとツイート検索するようにしておきました。

[link url=”https://popozure.info/20151122/9855″]

ちなみに当サイトで公開しているリンクをブログカード形式で表示させる「Pz-LinkCard」もツイート数は取得できないので更新はされません。

ただし、記録しているツイート数はそのまま表示させることができます。(更新されないのであまり意味はありませんが、余韻に浸る感じで…。)

カウントジェイソン→カウントジェイスーン

ツイート数取得API「count.json」(カウント・ジェイソン)の代替になるAPIとして、株式会社ディジティ・ミニミさんがリリースした「count.jsoon」(カウント・ジェイスーン)というAPIがあるとのこと。

[link url=”http://buzz-plus.com/article/2015/11/06/count-json/”]

取り上げている記事は11月6日なので、停止する発表を受けてリリースした感じでしょうか。

こちらがcount.jsoonのサイト。

[link url=”http://jsoon.digitiminimi.com/”]

開発元の株式会社ディジティ・ミニミさんのサイト。

[link url=”http://digitiminimi.com/”]

「OTOTOY」(オトトイ)という音楽アプリをリリースしたりしているようです。

「代表者プロフィール」を見ると「モリタポ」を開発した方だったり、タワーレコードの取締役さんだったり、何やらすごそうです。

それにしても、「count.json」に「o」を一個くっつけた「count.jsoon」というネーミング、なんか面白いです。

いざ、登録。

最初にcount.jsoonのサイトから、取得して欲しい自分のサイトのアドレスと、メールアドレスを入力して登録を行います。

count-jsoon-regist

サイトがリニューアルしてスッキリした感じになっていました。入力項目とかには変わりが無いと思われます。
new-soon

「登録を受け付けました」となりました。

count-jsoon-order

「処理が完了次第メールでお知らせします」とのこと。

22日に登録したものの、メールが来ないので念のため25日に再度登録したところ、26日に登録完了メールが来ました。

ユーザーページを開けてみたところ、8~16時間くらいかかったとのこと。

count-jsoon-userpage

「クロール」のところに「SLOW」と表示されています。Twitter連携を登録すると、収集が早くなるようです。

一応許可する権限は「タイムラインのツイートを見る。」と「フォローしている人を見る。」の2つ。

permit

不意につぶやいたりとかは無いようなので許可しても問題なさそうですが、とりあえず保留。

(追記)

許可権限も問題なさそうなので、けっきょく連携してしまいました。

収集速度が「HIGH」になりました。

twitter-on

取得APIそのものは登録しなくても使えるけど

さて、直接APIを叩いて「www.google.co.jp」のカウントを取得してみるとこんな感じ。2,982ツイートのようです。

{“url”:”http:\/\/www.google.co.jp”,”count”:2982}

jsoon-google

ちなみに21日現在、Twitterのcount.jsonではこんな結果でした。

{“count”:368898,”url”:”http:\/\/www.google.co.jp\/”}

get-tweet

“url”と”count”の順番がちょっと違いますが、URLが先の方がスッキリしてる感じはします。

ツイート数も、今までのを復元するという感じでは無くて、取り直している感じでしょうか。

 

さて、「技術的なこと」というページを見ると、TwitterのAPIを使ってツイートを収集、カウントをしていると書いています。

ウェブサイトを登録することで、その登録したウェブサイトのカウントを取得してくれるようです。

つまり、登録していないサイトはカウントされないということになります。

 

実はAPIの記述をすれば「count.jsoon」そのものは使えるので、登録とかしなくても使えます。

ただし、登録したサイトしかツイート数を収集しないので、ツイート数を取得しても0が返ってきます。

外部サイトの取得に使っても、そのサイトがcount.jsoonに登録していないと0が返ってくるので、何でもかんでも差し替えれば良いわけでは無さそうで、自分のサイトの記事のツイート数の取得に使う分には最適な感じです。

count.jsonをcount.jsoonに差し替える、「どこの?」

ソーシャルカウントの取得は時間がかかるので、バックグラウンドでソーシャルカウントを取得しておいて保存(キャッシュ)しておき、表示するときはキャッシュから高速に表示できるWordPressプラグイン「SNS Count Cache」を使用しています。

[link url=”https://marubon.info/intro-wordpress-plugin-sns-count-cache-4979/”]

WordPressテーマのSNSボタンのところの記述を修正する方法もありますが、せっかくソーシャルカウントの高速化を行っているプラグイン「SNS Count Cache」を使っているので、それのツイート数取得のAPI部分を差し替えるのが良さそうです。

プラグインの修正を誤った場合、WordPress管理画面すら表示されなくなるような状況もあります。可能であればテストサイトで試したり、元のファイルは別名で保存しておいて戻せる状態にしておくことをお勧めします。また、プラグインをバージョンアップした際には全てのファイルが上書きされますので、一時的な対処ということに留意しましょう。

本当はしばらくカウントのキャッシュが残って、ツイート数が残っている目論見だったのですが、次々を「0」になっていって、とりあえず「リスト」表示に変更したところです。

[link url=”https://popozure.info/20151122/9855″]

そんなこんなで、「【WordPress】ツイート数が取得できなくなったSNS Count Cacheを「count.jsoon」で復活させる方法」というAPIを差し替える記事がありました。

[link url=”http://creatorclip.info/2015/11/sns-count-cache-count-jsoon-tweet/?utm_content=buffer06158&utm_medium=social&utm_source=twitter.com&utm_campaign=buffer”]

通常にレンタルサーバーのファイルマネージャーや、FTPソフト(WinSCPなど)から編集できる方は上のリンク先の記事を見ていただくと良いと思うので、プラグイン一覧の画面からアプローチする感じで書いてみます。

プラグイン一覧画面から修正してみる

修正するファイルは「wp-content/plugins/sns-count-cache/includes/class-share-crawler.php」とのこと。

「シェア数」の「クローラ」(巡回プログラム)という意味ですね。

レンタルサーバーの「ファイルマネージャー」や、FTP(WinSCPなど)を使った方がラクだとは思いますが、プラグイン一覧の画面から編集してみます。

プラグイン一覧から「SNS Count Cache」を探して「編集」を押します。

edit-plugin-menu

「sns-count-cache/sns-count-cache.php の編集(使用中)」という画面になりますので、右側の「プラグインファイル」の中から「sns-count-cache/includes/class-share-crawler.php」を探します。

ファイル数が多いので、目で探すよりも[Ctrl]+[F]を押して、「share-crawler」とかで検索するとすぐに見つかると思います。

found-class-share-crawler

Twitterのツイート数取得APIのURLである「http://urls.api.twitter.com/1/urls/count.json?url=」が書いてある行を探します。

バージョン 0.8.0の場合、155行目ですが、プラグイン編集画面では行数が分からないので、「urls.api」や「twitter」とかのキーワードで検索するとラクだと思います。

api-url

このAPIの部分をcount.jsoonのURLである「http://jsoon.digitiminimi.com/twitter/count.json?url=」に変更します。

[php title=”class-share-crawler.php” start-line=”154″ decode=”true”] if ( isset( $target_sns[SNS_Count_Cache::REF_SHARE_TWITTER] ) && $target_sns[SNS_Count_Cache::REF_SHARE_TWITTER] ) {
$query_urls[SNS_Count_Cache::REF_SHARE_TWITTER] = ‘http://urls.api.twitter.com/1/urls/count.json?url=’ . $url;
}[/php]
↓
[php title=”class-share-crawler.php” start-line=”154″ mark=”2″ decode=”true”] if ( isset( $target_sns[SNS_Count_Cache::REF_SHARE_TWITTER] ) && $target_sns[SNS_Count_Cache::REF_SHARE_TWITTER] ) {
$query_urls[SNS_Count_Cache::REF_SHARE_TWITTER] = ‘http://jsoon.digitiminimi.com/twitter/count.json?url=’ . $url;
}[/php]

URLのドメインより右側は大文字小文字も区別してしまうので、なるべくコピー/貼り付けすると良いかも知れません。

Twitterのツイート数API http://urls.api.twitter.com/1/urls/count.json?url=
count.jsoon http://jsoon.digitiminimi.com/twitter/count.json?url=

URLの最後にある「?url=」という部分はパラメータで、この後ろに取得したい「記事のURL」を記述します。(「:」→「%3A」、「/」→「%2F」などのURIエンコードするのを推奨。)

プログラムだと、ここで記事のURLを指定しています。

php-url

なので、「http://jsoon.digitiminimi.com/twitter/count.json?url=http%3A%2F%2Fwww.google.co.jp」とかすると、「www.google.co.jp」のカウントが取得できます。

もしもエラーが出たら?

エラーが出た場合には修正ミスが考えられます。

再度プラグインの画面から編集を押して「sns-count-cache/includes/class-share-crawler.php」を編集します。

今度は「urls.api.twitter.com」という文字列は無いので、「count.jsoon」とか「digitiminimi」とかのキーワードで検索します。

漢字モードでは無い状態(半角)のスペース(空白)とするところを、全角のスペースにしてしまったり、小文字で書くところを大文字で書いてしまったり、目で見て分かりづらい場合には、一行まるまる手入力しなおしてみると良い場合があります。

半角アポストロフィ ‘ は1個の上付きの点です。かなり見づらいので、誤って消してしまったり、ダブルクォート “ と間違えて加えてしまったりしないように注意してください。

通常はプラグインのソースを直すのはサポート外なので、不安な場合は手を出さないのが良いと思います(^-^;

(なお、当サイトのプラグイン「Pz-HatenaBlogCard」と「Pz-LinkCard」はカスタマイズOK。ある程度はサポートします。)

あれれ?カウント0だよ?

「count.jsoon」は、登録してから少しずつ過去のツイートを検索してカウントを取り戻していきます。

特にツイート連携していない場合には「SLOW」(遅い)状態で取得されるので、反映されるまで気長に待ちましょう。

そして、カウント数表示

SNS Count Cacheから数値を取得して、ツイート数として表示しているのですが、この前「検索」という表示にしてツイート検索に飛ぶようにしたばかりです。

検索機能も活かしたいし、ツイート数が表示できるなら表示したい。でも、ツイートされててもまだ「0」のままの記事も多い。

ということで、「0」のときは「検索」と表示、「1」以上の場合はツイート数を表示させて、いずれの場合でも「ツイート検索」へのリンクを設定することにしてみました。

テーマ等によって変更箇所などが全然違うので、とりあえずカウントの部分だけ書いてみます。

[php title=”sns.php” start-line=”3″ decode=”true” wrap=”true”]<?php if(function_exists(‘scc_get_share_twitter’)) echo ‘<a href=”https://twitter.com/search?f=tweets&q=’.rawurlencode(str_replace(‘http://’,”,get_the_permalink())).’&src=typd” target=”_blank”>’.((scc_get_share_twitter() > 0) ? scc_get_share_twitter() : ‘検索’ ).'</a>’; ?>[/php]

「if(function_exists(‘scc_get_share_twitter’))」で「SNS Count Cache」でのツイート数取得が有効かどうかを確認。有効だったら「echo」によって「‘<a href=”https://twitter.com/search?f=tweets&q=’.rawurlencode(str_replace(‘http://’,”,get_the_permalink())).’&src=typd” target=”_blank”>’.((scc_get_share_twitter() > 0) ? scc_get_share_twitter() : ‘検索’ ).'</a>’」の部分がHTMLソースに出力されます。

Aタグでリンクを設定しますが、ここには「https://twitter.com/search?f=tweets&q=’.rawurlencode(str_replace(‘http://’,”,get_the_permalink())).’&src=typd」という感じでツイート検索のURLが記述されています。

その後の「((scc_get_share_twitter() > 0) ? scc_get_share_twitter() : ‘検索’ )」という部分で、「ツイート数が0より上」なら「ツイート数」、そうでないなら「検索」という文字を表示します。

これなら、0件でも見栄えが悪くないし、ツイート数が取得できていれば表示できるし。

実際に当サイトのSTINGER5で使っているsns.phpはこんな感じです。

[php title=”sns.php” decode=”true”]<div class=”sns”>
<ul class=”snsb clearfix”>
<li><span class=”sns-count”><?php if(function_exists(‘scc_get_share_twitter’)) echo ‘<a href=”https://twitter.com/search?f=tweets&q=’.rawurlencode(str_replace(‘http://’,”,get_the_permalink())).’&src=typd” target=”_blank”>’.((scc_get_share_twitter() > 0) ? scc_get_share_twitter() : ‘検索’ ).'</a>’; ?></span><a href=”https://twitter.com/intent/tweet?url=<?php the_permalink(); ?>&text=<?php echo get_the_title(); ?>” target=”_blank” onclick=”javascript:window.open(this.href, ”, ‘width=700,height=500,resizable=yes,menubar=no,toolbar=no,location=no,status=no,scrollbars=yes’);return false;”><span class=”sns-icon twitter”>twitter</span></a></li>
<li><span class=”sns-count”><?php if(function_exists(‘scc_get_share_facebook’)) echo scc_get_share_facebook(); ?></span><a href=”https://www.facebook.com/sharer/sharer.php?u=<?php the_permalink(); ?>” target=”_blank” onclick=”javascript:window.open(this.href, ”, ‘width=600,height=300,resizable=yes,menubar=no,toolbar=no,location=no,status=no,scrollbars=yes’);return false;”><span class=”sns-icon facebook”>facebook</span></a></li>
<li><span class=”sns-count”><?php if(function_exists(‘scc_get_share_gplus’)) echo scc_get_share_gplus(); ?></span><a href=”https://plus.google.com/share?url=<?php the_permalink(); ?>” target=”_blank” onclick=”javascript:window.open(this.href, ”, ‘width=700,height=600,resizable=yes,menubar=no,toolbar=no,location=no,status=no,scrollbars=yes’);return false;”><span class=”sns-icon gplus”>google+</span></a></li>
<li><span class=”sns-count”><?php if(function_exists(‘scc_get_share_hatebu’)) echo scc_get_share_hatebu(); ?></span><a href=”http://b.hatena.ne.jp/add?mode=confirm&url=<?php the_permalink(); ?>&title=<?php echo get_the_title(); ?>” target=”_blank” onclick=”javascript:window.open(this.href, ”, ‘width=600,height=400,resizable=yes,menubar=no,toolbar=no,location=no,status=no,scrollbars=yes’);return false;”><span class=”sns-icon hatebu”>はてなブックマーク</span></a>
<li><span class=”sns-count”><?php if(function_exists(‘scc_get_share_pocket’)) echo scc_get_share_pocket(); ?></span><a href=”http://getpocket.com/edit?url=<?php the_permalink() ?>&title=<?php echo $title_encode; ?>” target=”_blank” onclick=”javascript:window.open(this.href, ”, ‘width=600,height=300,resizable=yes,menubar=no,toolbar=no,location=no,status=no,scrollbars=yes’);return false;”><span class=”sns-icon pocket”>Pocket</span></a></li>
<li><span class=”sns-count”><?php if(function_exists(‘scc_get_follow_feedly’)) echo scc_get_follow_feedly(); ?></span><a href=”http://cloud.feedly.com/#subscription/feed/https://popozure.info/feed” target=”_blank” onclick=”javascript:window.open(this.href, ”, ‘width=800,height=800,resizable=yes,menubar=no,toolbar=no,location=no,status=no,scrollbars=yes’);return false;”><span class=”sns-icon feedly”>feedly</span></a></li>
</ul>
</div>
<link rel=”stylesheet” href=”<?php echo get_stylesheet_directory_uri(); ?>/sns.css” />[/php]

前回の記事でも触れましたが、sns.cssとかsns.pngとか他に必要なファイルがあるのでそのまま貼り付けてもきれいには表示されないと思いますので、参考までに。

とりあえず、これで様子を見ようと思います。

では、この辺で。(^-^)o

[STINGER5]消えたツイート数…そして、ツイート検索にしてみた

ツイート数が取得できなくなりましたが、「しばらくはツイート数も残しておきたいなー」と思っていたものの…。

Twitterのツイート数は取得できなくなりました

日本時間で11月21日の明け方ごろ、Twitterのツイート取得APIの提供が終了しました。(Twitter社としては提供はしていなくて、ユーザーが勝手に使っていただけなのですが…。寂しいものです(^-^;)

[link url=”https://popozure.info/20151120/9811″]

そして、当サイトの記事に表示されるソーシャルカウントには「SNS Count Cache」というプラグインを使用させていただいています。

このプラグインでもこの「Twitterのツイート取得API」を使っています。(ちまたで「count.json」(カウント・ジェイソン)と呼ばれているものです。Twitterのツイート数(カウント)を「JSON(JavaScript Object Notation)形式」で返してくれるAPIです。)

さて、そんなわけで、「SNS Count Cache」の作者さんのブログ「試行錯誤ライフハック」の記事ではシェア数取得の設定から「Twitter」を外すのが推奨されています。

Twitterのシェア数が取得不可となった場合は、[WordPress管理メニュー]→[SNS Count Cache]→[設定]→[シェア基本キャッシュ機能]のセクションで対象SNSからTwitterを一旦はずしてご利用下さい。
[link url=”https://marubon.info/announcement-sns-count-cache-twitter-endpoint-disappearance-5851/”]

設定方法としては、WordPress管理画面から「SNS Count Cache」→「設定」と入って、「Twitter」のチェックをはずして「設定の更新」ボタンを押すだけです。

sns-count-cache-setting

でも、「設定の更新」を押すと、キャッシュがすべてクリアされます。Σ(゚ロ゚)o゙

「ツイート数は取得できなくなったけど、しばらくの間は残ってるツイート数の余韻にひたりたい…!Σ(゚ロ゚)o゙」

でも、「設定の更新」を押すと、キャッシュがすべてクリアされます。Σ(゚ロ゚)o゙

ということで、しばし放置することにしましたとさ。

めでたし、めでたし。

消えたツイート数

ぽぽろん「あ、あれ?Σ(゚ロ゚)o゙」

sns-0-7-0-3-4-16

ツイート数が「0」になってます。

この記事は、Pz-LinkCardのキャッシュによると、「8 Tweets」あるはずだったのですが…!Σ(゚ロ゚)o゙

share-8-1-3

ぽぽろん「あ、あれ?Σ(゚ロ゚)o゙」

twitter-na

「SNS Count Cache」の「シェア数」を見てみると、Twitterの件数がどんどんクリアされています。

取得→エラー→エラーで上書きという動きなのかも知れませんが、そういえばそもそもカウントキャッシュは、期限付きデータを扱う「Transients API」を使っていると知った記憶があります。

(でも、postmetaだった気も?普通に上書きされただけかなぁ?Σ(゚ロ゚;o゙)

いずれにしてもそんなに長くなく消える数字だったのでした(^-^;

と、いうわけで、Twitter取得を解除してみた

上の方に貼った画像のとおり、「Twitter」を外して「設定の更新」を押しました。

数値は全部クリアされて取得されなおしていきます。

sns-count-cache-clear

ぽぽろん「あぁ…!!Σ(゚ロ゚)o゙」

ぽぽろん「Twitterのカウント消える前にCSV出力しとけばよかった!Σ(゚ロ゚)o゙」

まあ、もう無いデータは無いので仕方がないです。

多分、取っておいても、「この記事、10ツイートもされてたぁ、ニヤニヤ」とするくらいしか活用できなかったと思うので良いことにします。

記事下のソーシャルカウントがきになる

ツイート数の表示はしばらく放置のつもりだったものの、現在はどの記事を見ても記事下の「Twitter」のカウント「0」と表示されるだけになります。

tweet-0

そこそこ見ていただいている記事は数個なので、そもそも大半の記事は「0」のままだったのですが、そういうのは気にしないことにします。

 

ということで、最近流行りの「リスト表示」みたいなのにしちゃおうかと思います。

とはいえ、有名サイトでないと押したところで「リスト」(一覧)なんて出てきません。

…だいたい「[icon name=”twitter” class=”” unprefixed_class=””]見つかりませんでした。」が出てきます。

not-found

とりあえず控えめに「検索」と表示することにしました。

「リスト」→「見つかりませんでした。」(リストなんて無かった…!)よりも、「検索」→「見つかりませんでした。」(まあ見つからないこともあるよね!)の方が自分へのダメージが少ない気がします…!Σ(゚ロ゚)o゙(きっと気のせいですが。)

表示されている記事のURLを取得する「get_the_permalink()」を使ってURLを取得して、「rawurlencode()」を使ってパラメータとして使える文字列にエンコード(「変換」みたいな意味。)して、「ツイート検索URL」のクエリ(Query、「問い合わせ」する部分)のパラメータ部分にくっつけてリンク設定します。

[php title=”sns.php” start-line=”3″ wrap=”true” decode=”true”]<a href=”https://twitter.com/search?f=tweets&q=<?php echo rawurlencode(get_the_permalink()); ?>&src=typd” target=”_blank”>検索</a>[/php]

「検索」がしっくり来ない方は、「検索」という文字を「リスト」とか「!」とか「?」とか「Σ(゚ロ゚)o゙」とか、お好みで変えてください。

tweet-search

この文字の部分をクリックするとツイート検索になります。

でも、あまりツイートされていないURLや、あまりツイートしていないアカウントからのツイート、古いツイートとかは引っかからないようなので、それなりにシェアされているサイトさんじゃないと、だいたい寂しい結果になりそうです(^-^;

not-found

んー、というか、「11月に入ってから自分以外からツイートされたURL」も引っかからないですね(^-^;

あれこれ色んなかたちでURLとか記事名とかで検索して試したところ、最初の「http://」とか「https://」をはずした方が良さそうです。

これだとどうやら数件引っかかるようになりました。

found-tweet

当サイトはSSL対応していないので、記事のURLの先頭の「http://」を空欄に置き換えてみます。

[php title=”sns.php” start-line=”3″ wrap=”true” decode=”true”]<a href=”https://twitter.com/search?f=tweets&q=<?php echo rawurlencode(str_replace(‘http://’,”,get_the_permalink())); ?>&src=typd” target=”_blank”>検索</a>[/php]

SSL対応しているサイトさんの場合は「str_replace(‘http://‘,”,」となっているところを、「str_replace(‘https://‘,”,」とすれば良いかと思います。

ぽぽづれ修正後のsns.php

当サイトでは現在、WordPressテーマとして「STINGER5」を使用しています。

「えじの自由帳」さんの記事を参考にSNSボタンを設置しています。

[link url=”https://popozure.info/20150211/6559″]

一応修正後のsns.phpを書いてみますが、これに対応したsns.cssとsns-icon.pngが必要なので、sns.phpだけをこのまま貼り付けてもちゃんと表示されませんので、あくまでも参考程度にどうぞ。

というわけで、修正後のsns.phpがこんな感じ。

[php title=”sns.php” decode=”true”]<div class=”sns”>
<ul class=”snsb clearfix”>
<li><span class=”sns-count”><a href=”https://twitter.com/search?f=tweets&q=<?php echo rawurlencode(str_replace(‘http://’,”,get_the_permalink())); ?>&src=typd” target=”_blank”>検索</a></span><a href=”https://twitter.com/intent/tweet?url=<?php echo rawurlencode(get_the_permalink()); ?>&text=<?php echo htmlentities(get_the_title()); ?>” target=”_blank” onclick=”javascript:window.open(this.href, ”, ‘width=700,height=500,resizable=yes,menubar=no,toolbar=no,location=no,status=no,scrollbars=yes’);return false;”><span class=”sns-icon twitter”>twitter</span></a></li>
<li><span class=”sns-count”><?php if(function_exists(‘scc_get_share_facebook’)) echo scc_get_share_facebook(); ?></span><a href=”https://www.facebook.com/sharer/sharer.php?u=<?php echo rawurlencode(get_the_permalink()); ?>” target=”_blank” onclick=”javascript:window.open(this.href, ”, ‘width=600,height=300,resizable=yes,menubar=no,toolbar=no,location=no,status=no,scrollbars=yes’);return false;”><span class=”sns-icon facebook”>facebook</span></a></li>
<li><span class=”sns-count”><?php if(function_exists(‘scc_get_share_gplus’)) echo scc_get_share_gplus(); ?></span><a href=”https://plus.google.com/share?url=<?php echo rawurlencode(get_the_permalink()); ?>” target=”_blank” onclick=”javascript:window.open(this.href, ”, ‘width=700,height=600,resizable=yes,menubar=no,toolbar=no,location=no,status=no,scrollbars=yes’);return false;”><span class=”sns-icon gplus”>google+</span></a></li>
<li><span class=”sns-count”><?php if(function_exists(‘scc_get_share_hatebu’)) echo scc_get_share_hatebu(); ?></span><a href=”http://b.hatena.ne.jp/add?mode=confirm&url=<?php echo rawurlencode(get_the_permalink()); ?>&title=<?php echo htmlentities(get_the_title()); ?>” target=”_blank” onclick=”javascript:window.open(this.href, ”, ‘width=600,height=400,resizable=yes,menubar=no,toolbar=no,location=no,status=no,scrollbars=yes’);return false;”><span class=”sns-icon hatebu”>はてなブックマーク</span></a>
<li><span class=”sns-count”><?php if(function_exists(‘scc_get_share_pocket’)) echo scc_get_share_pocket(); ?></span><a href=”http://getpocket.com/edit?url=<?php the_permalink() ?>&title=<?php echo htmlentities(get_the_title()); ?>” target=”_blank” onclick=”javascript:window.open(this.href, ”, ‘width=600,height=300,resizable=yes,menubar=no,toolbar=no,location=no,status=no,scrollbars=yes’);return false;”><span class=”sns-icon pocket”>Pocket</span></a></li>
<li><span class=”sns-count”><?php if(function_exists(‘scc_get_follow_feedly’)) echo scc_get_follow_feedly(); ?></span><a href=”http://cloud.feedly.com/#subscription/feed/https://popozure.info/feed” target=”_blank” onclick=”javascript:window.open(this.href, ”, ‘width=800,height=800,resizable=yes,menubar=no,toolbar=no,location=no,status=no,scrollbars=yes’);return false;”><span class=”sns-icon feedly”>feedly</span></a></li>
</ul>
</div>
<link rel=”stylesheet” href=”<?php echo get_stylesheet_directory_uri(); ?>/sns.css” />[/php]

あらためて、修正のポイント

「SNS Count Cache」を使ってツイート数を表示している方は、だいたいこんな感じでカウントを表示していると思います。

[php title=”sns.php” start-line=”3″ wrap=”true” decode=”true”]<li><span class=”sns-count”><?php if(function_exists(‘scc_get_share_twitter’)) echo scc_get_share_twitter(); ?></span><a href=”https://twitter.com/intent/tweet?url=<?php the_permalink(); ?>&text=<?php echo get_the_title(); ?>” target=”_blank”><span class=”sns-icon twitter”>twitter</span></a></li>[/php]

さらに、カウントの部分だけ抜き出してみます。

[php title=”sns.php” start-line=”3″ wrap=”true” decode=”true”]<?php if(function_exists(‘scc_get_share_twitter’)) echo scc_get_share_twitter(); ?>[/php]

「if(function_exists(‘scc_get_share_twitter’)」というところで、「SNS Count Cache」が有効化されているかどうか、ツイート取得ができるかどうかを確認して、有効だったら「scc_get_share_twitter()」を使って「ツイート数」の数値を取得します。

この結果、「0」とかが返ってくるので、それを「echo」で出力しています。

では、この部分を差し替えてみます。

[php title=”sns.php” start-line=”3″ wrap=”true” decode=”true”]<?php if(function_exists(‘scc_get_share_twitter’)) echo scc_get_share_twitter(); ?>[/php]
↓
[php title=”sns.php” start-line=”3″ wrap=”true” decode=”true”]<a href=”https://twitter.com/search?f=tweets&q=<?php echo rawurlencode(str_replace(‘http://’,”,get_the_permalink())); ?>&src=typd” target=”_blank”>検索</a>[/php]

これで「0」と表示される代わりに「検索」と表示され、リンクをクリックすると記事URLでツイート検索をしてくれるようになります。

「検索」の文字が青くてアンダーラインが入ってて「即席のテキストリンクっぽくてヤだなぁ」という場合は、Aタグに「style=”text-decoration:none; color: #000; font-size: 11px;”」とか指定しておくとよさそうです。(もちろん分かる方はstyle.cssとかに記述した方がスマートです。)

[php title=”sns.php” start-line=”3″ wrap=”true” decode=”true”]<a href=”https://twitter.com/search?f=tweets&q=<?php echo rawurlencode(str_replace(‘http://’,”,get_the_permalink())); ?>&src=typd” target=”_blank” style=”text-decoration:none; color: #000; font-size: 11px;”>検索</a>[/php]

「text-decoration: none;」が「文字装飾なし」なのでリンク文字にアンダーバーが付かなくなります。「color: #000;」で文字を黒。「font-size: 11px;」で文字の大きさを11ピクセルに指定。文字色とかサイズは数字をお好みで変更すると良いと思います。

a-style

今度こそめでたし、めでたし。

では、今回はこの辺で。(^-^)o