Simplicityを1.8.9 20150928にバージョンアップしました。
今回の主な変更点は以下。
- feedlyカウントを非同期取得に戻す
- Yahoo! Pipesに頼らずfeedlyカウントの取得
- Yahoo! Pipesに頼らずGoogle+カウント取得
- Yahoo! Pipesに頼らずPocketカウント取得
- SNSカウントの取得のタイムアウト時間を設定(10秒)
- カスタマイザーのレイアウト[最初だけ本文表示]になっている時にインデックスページでライトボックス表示されない不具合修正
- SSLサイトでは外部ブログカードの表示ができない不具合修正(詳細)
- 表示していないいSimplicity独自SNSボタンのカウント数をAjaxで取得しないように変更(詳細)
- 最初だけ大きなエントリーカードにすると特定の条件下で表示が崩れる不具合修正(詳細)
- [修正a]1カラム表示にした時の幅の不具合修正
- [修正b]Twitterのシェアカウント数の取得を廃止(10月から取得できなくなるため)
- [修正c]ブログカードの抜粋の不具合修正
- [修正d]カテゴリーh1の見出しにqが入っていたのを除去(詳細)
- [修正e]環境によっては、Google+、Pocket、feedlyのシェア数が取得できなかった不具合修正(多分)(詳細)
- [修正g]シェア数の取得方法の再変更
- [修正h]Twitter Japanから詳しいアナウンスがあるまではツイート数を表示するようにします(関連記事)
- [修正i]SNSシェア数の読み込みエラー時に0ではなくてエラーマークを表示するように変更
- [修正j]環境によってはPocketカウント取得時にエラーが出るのを修正
SNSシェアボタンの改善
Simplicityの独自シェアボタンは、Ajaxを利用してカウントを取得しています。
シェアボタンに関しては、Google+とPocketとfeedlyは、カウント数取得用のAPIがないので、クロスドメイン制約を避けるために、Yahoo! Pipesを経由してカウントを取得していました。
ただ、数日前、Yahoo! Pipesが9月30日をもってサービスを終了するということを知りました。
As of August 30th 2015, users will no longer be able to create new Pipes. The Pipes team will keep the infrastructure running until end of September 30th 2015 in a read-only mode.
ですので、Simplicityの独自シェアボタンでGoogle+、Pocketを利用している場合は、9月30日をもって、カウントが取得できなくなります。おそらく10月からは、ページを読み込んでも、スピナーがクルクル回ったままになるのではないかと思います。
ですので、10月以降もSimplicityの独自ボタンを利用する場合は、バージョンアップをすることをお勧めします。
バージョンアップをしない場合は、自前で修正するか、各SNSサービス固有のシェアボタンを表示させるしかないかもしれません。
Twitterのツイート数表示を廃止
10月から、ツイート数取得APIの「count.json」が提供終了だそうです。これにより、来月からツイート数が取得できなくなります。
なので、ツイート数表示をやめました。
詳細は以下。
不具合修正
フォーラムでいくつか不具合報告をいただいたので、それらを修正しました。
詳しくは以下。
あとがき
今回の、SNSシェアボタンの改善は、クロスドメイン制約を回避するために、PHPで取得コードを書いておいて、同ドメイン内に置いておいて、それをJavaScriptで呼び出しています。
僕が、ここ1週間ぐらい試した限りでは、特に不具合は見つかりませんでしたが、サーバーによっては、取得できないなんて可能性もあるかもしれません。
多分大丈夫だと思いますが、何かシェアボタンのカウント取得で不具合があった場合は、フォーラムにご報告いただけると助かります。
今回は、JavaScriptのコードを変更しているのでブラウザキャッシュの設定をしている場合は、必ずブラウザを1度リロードした後、お試しください。
コメント
いつもお世話になっております。
今回アップデートしてみたのですが、わいひらさんの記事の「Simplicityの独自シェアボタンのカウント数を非表示にする方法」のスタイルシート記述をしていましたが、カウントが表示されるようになってしまいました。
キャッシュクリアもしてみたのですが…
新たな対処法が必要でしょうか。
いつかお時間のある時で結構ですのでご確認をお願いします。
現在体調をくずされているとのこと、お大事にしてくださいね。
ありがとうございます。
体調はだいぶ良くなりました。
カウント数の表示についてなんですが、実際の不具合ページのURLからソースを見てみないと書き込まれた情報だけではガイドラインに書かれている対策以上のことは僕もわからないです。
動作不良時のガイドライン
どのバージョンから、どのバージョンにアップデートしたのかはわからないのですが、最近カウント数の表示に関する変更は行っていないと思います。
pocketのやつ
$domDocument = new DOMDocument('1.0', 'UTF-8');
$domDocument->preserveWhiteSpace = false;
$domDocument->loadHTML($result);
$xmlString = $domDocument->saveXML();
$xmlObject = simplexml_load_string($xmlString);
$array = json_decode(json_encode($xmlObject), true);
return $array['body']['div']['a']['span']['em']; //←result
これでもイケます。おそらく。
僕の場合、カウント取得用のスクリプトそれぞれをlibフォルダに分けて入れて、そこに対してajaxしているので、
echo $array['body']['div']['a']['span']['em'];
これで読めます。カウントの部分は元々0かその他の数字が入っているので、そのままでいけそうです。
※ $xmlObjectから変換してjsonのままで出力するとどうやらjsonの構造に不備があるみたいで$.parseJSONで読めませんでした。僕の書き方がまずかっただけかも知れませんが(笑)
jQuery側は、
$.ajax({
type: "GET",
url: surl,
data: query,
dataType: 'html',
success: def.resolve,
error: def.reject
});
return def.promise();
ウチではこうですが、successとerrorの部分を普通に、
$.ajax({
//...省略(dataTypeまでの内容)
}).done(function(data){
$(selector).html(data);
}).fail(function(jqXHR, textStatus){
$(selector).html("error");
console.log("[pkt_ajax_err] xhr: %s | status: %s ",jqXHR,textStatus);
});
こんな感じにすればローカルのファイルで出力(echo)した内容が拾えます。おそらく。
ただ、ローカルで出力する場合、ajaxに送るアドレス、つまりは上記で言う所のsurlの部分がsimplicityのlibフォルダとかになると思うので、そのアドレスを自分で書くか、wordpressのローカル変数で入れないとダメなんですよね。そこらが面倒な所。queryの部分は調べたいアドレスです。
で、ローカルで出力できるんならajaxを使わなくても良いという(笑)
ひとまずtwitterはどうしようも…なくも無いんですけど、pocketほどサックリとは行かないのと、10月からシェア数無くすとか何とかで、今更感があるのもあって、何かしらのサービス待ちという感じですな。
今日、jetpackが更新されたので、新しい手法が見つかったか!!とウキウキしながら中身覗いてみたら、これまでと同様取得先がcount.jsonでした(笑)
Pocketは、フォーラムにカウントが取得できないという報告が来るようなら修正したいと思います。
Twitterは、とりあえず10/1(アメリカ時間?)になって様子を見て、いろいろ試してみようと思います。
はじめまして。
いつもお世話になっております。
自分のサイトでは、シェアボタンのタイプをテーマカラータイプにした場合のみ
Pocketのカウントが取得できず、表示も乱れる(コード表示になる)ようです。
デフォルト(サービス固有のボタン)表示にすると直ります。
不具合が出ている状態で表示させていますので、よかったらご覧ください。
http://fancyacuppa.net/redbull-blue/
使用しているバージョンは、simplicity1.8.9h と simplicity-child20150920aで
サーバーはXdomain無料レンタルサーバーです。
どうぞよろしくお願いいたします。
hidekichiさんがおっしゃっていたエラーはこれだったんですね。
修正版jで修正しておきました。
修正版jで、正常に表示されました。
素早いご対応ありがとうございました!
お世話になります。
先日質問した件ですが、1.6から1.8.9cへのバージョンアップ後、カウント数が表示されるようになりました。
1.8.9jにアップし、子テーマも最新版に変えたところ、カウント数が元通り表示されなくなりました。
自分でもどちらのアップが決め手か良く分かりませんが、無事に解決しました。
ありがとうございました。
最近のアップデートでは、カウント部分の変更は行っていないんですけど。
なにはともあれ、とりあえず、お二方ともうまくいったようでよかったです。