Tag: WordPress/SNSCountCache
関連ページ†
参考情報†
- はてなブックマークやTwitter、Facebookなどによる共有数を表示するためのプラグイン。
- 日本人作者なのではてなブックマークに対応しているのが特徴。
Tips†
デバッグ方法†
- WordPressの設定で「WP_DEBUG」をtrueに設定すると、プラグイン内部のSCC_Common_Util::logによるログが書き出されるようになる。
- メソッドの呼び出し順がわかるので、どこで時間がかかっているのかdebug.logをtailしながら確認すると良い。
トラブルシューティング†
重すぎて有効化できない†
- WP_DEBUGをtrueにして確認してみたところclass-scc-share-second-cache-engine.phpのinitialize_cache()で時間がかかっていた。
- さらにその内部の以下の部分で時間がかかっているので、そこをコメントアウトすると良い。
if ( $posts_query->have_posts() ) {
while ( $posts_query->have_posts() ) {
$posts_query->the_post();
$post_id = get_the_ID();
foreach ( $this->target_sns as $sns => $active ) {
$meta_key = $this->get_cache_key( $sns );
if ( $active ) {
update_post_meta( $post_id, $meta_key, (int) -1 );
}
}
}
}
- update_post_metaで記事ごとに値を保存しているのでそこで時間がかかっている模様。
- とくに初期化しなくても実用上の問題はなさそう。
設定が保存できない。設定を保存するとカウントがリセットされる。†
Facebookのカウントが取得できない†
- 「SNS Count Cache 0.11.1」でFacebookのシェア数をカウントする方法【WordPress】にあるような修正でうまくいく。ただしうまくコピペできない(シングルクォートが違う文字になる)ので以下に再掲。
- class-scc-share-facebook-strategy.phpを修正する。
- build_query_urlの修正
$url = self::DEF_BASE_URL . '?id='. rawurlencode($this->query_parameters['id']) . '&fields=og_object{engagement},engagement&access_token=' . $this->query_parameters['access_token'];
- extract_countの修正。
if ( isset( $content['data'] ) && empty( $content['error'] ) ) {
$json = json_decode( $content['data'], true );
// if ( isset( $json['share']['share_count'] ) && is_numeric( $json['share']['share_count'] ) ) {
// $count = (int) $json['share']['share_count'];
// } elseif ( isset( $json['id'] ) && ! isset( $json['share']['share_count'] ) ) {
// $count = (int) 0;
// } else {
// $count = (int) -1;
// }
$reaction = (int) $json['engagement']['reaction_count'];
$comment_count = (int) $json['engagement']['comment_count'];
$share_count = (int) $json['engagement']['share_count'];
$count = $reaction + $comment_count + $share_count;
} else {
$count = (int) -1;
}
キャッシュの削除処理は?†