[試] 表示速度改善とシェア数ベースの人気記事ランキングを実現、WordPressプラグイン SNS Count Cache

[試] 表示速度改善とシェア数ベースの人気記事ランキングを実現、WordPressプラグイン SNS Count Cache

表示速度改善だけじゃなく、シェア数を元にした人気記事ランキング作成はいかがですか?

WordPressプラグイン SNS Count Cacheのアップデートのお知らせです。

SPONSORED LINK

アウトライン

WordPressプラグイン SNS Count Cacheとは

SNS Count Cacheは、Twitter、Facebook、Google+、Pocket、はてブのシェア数をキャッシュするWordPressプラグインです。表示時にネットワークを介さずキャッシュ経由でシェア数を取得できるようになるため、複数の記事、複数のSNSにまたがるシェア数取得時に表示速度の改善が見込めます。

WordPress › SNS Count Cache « WordPress Plugins

新機能等アップデート内容

アップデート内容は、以下の通りです。

  • Pocketのブックマーク数取得機能の追加
  • 2次キャッシュ機構によるキャッシュ保持機能の強化
  • シェア数を活用した人気記事ランキングの作成機能
  • 各種設定画面の改善
  • コンテンツのシェア数確認ページの追加

Pocketのブックマーク数取得機能の追加

Pocketのブックマーク数も取得できるようにしました。

ベースは、この記事で紹介した方法を使用しています。

シェア数を参照する関数は、以下の通りです。(Pocket以外も再掲しています。)

FunctionDescription
get_scc_twitter()Twitterのシェア数を返す
get_scc_facebook()Facebookのシェア数を返す
get_scc_gplus()Google+のシェア数を返す
get_scc_hatebu()はてなブックマーク数を返す
get_scc_pocket()Pocketのブックマーク数を返す

2次キャッシュ機構によるキャッシュ保持機能の強化

後述の新機能の実現とキャッシュ保持機能を強化するため、2次キャッシュ機構を実装しました。

キャッシュにWordPressのTransients APIを使用しているのですが、オブジェクトキャッシュを使用していると、記事やテーマ更新時にキャッシュが消えてしまう場合がありました。

本バージョンでは、WordPressのカスタムフィールドを2次キャッシュと位置づけ、定期的に1次キャッシュ(Transients API経由のキャッシュ)から2次キャッシュにシェア数を同期(ある意味退避)します。

1次キャッシュから2次キャッシュへの同期処理は、バックグラウンドで10分間隔で行われます。1次キャッシュにデータが存在することが前提となるため、同期完了までそこそこ時間がかかります。あらかじめご認識おきください。

キャッシュ状況は、[WordPress管理画面]→[設定]→[SNS Count Cache]→[Cache Statusタブ]で確認できます。Primary Cacheが1次キャッシュ(Transients API経由)、Secondary Cacheが2次キャッシュ(カスタムフィールド)のキャッシュ保持状況をあらわしています。

intro-update-wordpress-plugin-sns-count-cache-2-03

1次キャッシュが意図せず頻繁に消えてしまう方は、後述するDynamic Cacheの「Asyncronous 2nd Cache」を設定して下さい。1次キャッシュがない場合、2次キャッシュのデータを参照するようになるため、シェア数が表示されない時間を削減できます。

シェア数を活用した人気記事ランキングの作成機能

上記2次キャッシュの実装によりシェア数を記事のメタデータ(カスタムフィード)として活用できるようになりました。これによりシェア数を元にした記事のソートが容易になりました。

具体的には、WP_Query等のクエリオプションとしてメタデータのキーを指定することで、対象SNSのシェア数が多い順に記事をソートします。

利用できるメタデータのキーは以下の通りです。

FunctionDescription
scc_share_count_twitterTwitterシェア数のメタデータのキー
scc_share_count_facebookFacebookシェア数のメタデータのキー
scc_share_count_google+Google+シェア数のメタデータのキー
scc_share_count_hatebuはてなブックマークシェア数のメタデータのキー
scc_share_count_pocketPocketシェア数のメタデータのキー

以下は、Twitterのシェア数が多い人気記事(5件)を表示するサンプルコードです。

記事名とそのリンクのみ表示する例です。

WP_Queryに追加のオプションを与えることにより、特定のカテゴリ指定等、様々な検索が可能です。用途にあわせてカスタマイズして下さい。

各種設定画面の改善

設定画面をわかりやすく実装しなおすと共に設定項目を追加しました。

intro-update-wordpress-plugin-sns-count-cache-2-04

Base CacheのTarget SNSの通り、キャッシュ対象とするSNSを選択できるようにしました。

Rush Cacheの部分になりますが、投稿されたコンテンツを新着と判断する期間(5分間隔でキャッシュを更新する期間)を変更できるようにしました。

Dyanamic Cache(ユーザがページ参照時に1次キャッシュが存在しない場合の処理)のオプションを追加しました。

追加したオプションは、「Asyncronous 2nd Cache」です。これを選択すると、1次キャッシュにデータが存在しない場合、シェア数再取得の予約をしつつ、2次キャッシュのデータを返すようになります。

Rush Cache及びDynamic Cacheの詳細は、このエントリを参照して下さい。

コンテンツのシェア数確認ページの追加

設定ページに各コンテンツのシェア数を確認できるページを追加しました。[WordPress管理画面]→[設定]→[SNS Count Cache]→[Share Countタブ]で確認できます。

intro-update-wordpress-plugin-sns-count-cache-2-02

まとめ

WordPressプラグイン SNS Count Cacheアップデートのお知らせでした。

今回の新機能の目玉は、以下だと考えています。

  • シェア数をベースとした人気記事ランキングを作成する手段の提供
  • Pocketのシェア数(ブックマーク数)の対応

WordPress Popular Postsを利用して、PVベースの人気記事を表示している方は多いと思いますが、この機にSNS Count Cacheを導入し、シェア数ベースの人気記事を表示してみるのはいかがでしょうか。