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

PHP
この記事は約16分で読めます。

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

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

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

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

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

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

Twitterのシェア数が取得不可となった場合は、[WordPress管理メニュー]→[SNS Count Cache]→[設定]→[シェア基本キャッシュ機能]のセクションで対象SNSからTwitterを一旦はずしてご利用下さい。

設定方法としては、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」のままだったのですが、そういうのは気にしないことにします。

 

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

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

…だいたい「見つかりませんでした。」が出てきます。

not-found

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

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

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

<a href="https://twitter.com/search?f=tweets&q=<?php echo rawurlencode(get_the_permalink()); ?>&src=typd" target="_blank">検索</a>

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

tweet-search

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

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

not-found

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

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

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

found-tweet

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

<a href="https://twitter.com/search?f=tweets&q=<?php echo rawurlencode(str_replace('http://','',get_the_permalink())); ?>&src=typd" target="_blank">検索</a>

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

ぽぽづれ修正後のsns.php

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

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

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

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

<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" />

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

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

<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 if(function_exists('scc_get_share_twitter')) echo scc_get_share_twitter(); ?>

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

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

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

<?php if(function_exists('scc_get_share_twitter')) echo scc_get_share_twitter(); ?>

<a href="https://twitter.com/search?f=tweets&q=<?php echo rawurlencode(str_replace('http://','',get_the_permalink())); ?>&src=typd" target="_blank">検索</a>

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

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

<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>

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

a-style

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

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

コメント

タイトルとURLをコピーしました