「WordPressで学ぶPHP(1)変数・制御構造編」が発売されました。
「WordPressで学ぶPHP」シリーズの第1巻で、WordPressを通してPHPを学んでいく本です。
この本では、PHPの基本となる変数と制御構造について解説します。
Kindle本で、定価500円です。
はてなブックマーク/del.icio.us/Livedoor clipの被ブックマーク数を表示するプラグイン(Movable Type 3.3用・その4)
「はてなブックマーク/del.icio.us/Livedoor clipの被ブックマーク数を表示するプラグイン」では、Blog全体の被ブックマーク数を表示することもできます。
今日はその方法を解説します。
1.Blog全体の被ブックマーク数を表示するテンプレートタグ
Blog全体の被ブックマーク数は、以下のテンプレートタグで表示することができます。
テンプレートタグ | 内容 |
---|---|
MTBlogHatenaBookmarkCount | はてなブックマークでの被ブックマーク数を表示します。 |
MTBlogDeliciousBookmarkCount | del.icio.usでの被ブックマーク数を表示します。 |
MTBlogLivedoorBookmarkCount | Livedoor clipでの被ブックマーク数を表示します。 |
はてなブックマークでは、特定のサイトの被ブックマーク数を取得するためのAPIがありますので、それを利用しています。
はてなブックマークのサービスに、「はてなブックマークカウンター」(Blog全体の被ブックマーク数を画像で表示する機能)がありますが、それと同じ数値ガ出力されます。
一方、del.icio.usとLivedoor clipにはそのようなAPIはありませんので、プラグイン内部で被ブックマーク数を集計するようにしています。
2.静的に表示する
エントリーごとの被ブックマーク数は、静的にも動的にも表示することができました。
それと同様に、Blog全体の被ブックマーク数も、静的にも動的にも表示することができます。
静的に表示する場合は、前述したタグを組み合わせて、テンプレートの中で被ブックマーク数を表示したい位置に入れます。
例えば、Movable Typeの標準テンプレートの場合だと、サイドバーに以下のようなタグを入れれば、Blog全体の被ブックマーク数を表示することができます。
<div class="module-bookmark-count module"> <h2 class="module-header">被ブックマーク数</h2> <div class="module-content"> <ul class="module-list"> <li class="module-list-item">はてなブックマーク:<$MTBlogHatenaBookmarkCount$></li> <li class="module-list-item">del.icio.us:<$MTBlogDeliciousBookmarkCount$></li> <li class="module-list-item">Livedoor clip:<$MTBlogLivedoorBookmarkCount$></li> </ul> </div> </div>
メインページのテンプレートに、このような部分を入れておくと良いでしょう。
これ以後は、被ブックマーク数の手動取得(1月2日のエントリーを参照)を行った後で、メインページを再構築すれば、その時点でのBlog全体の被ブックマーク数が表示されるようになります。
3.動的に表示する
Blog全体の被ブックマーク数を動的に表示することもできます。
作業の手順は、昨日のエントリーとほぼ同じです。
まず、テンプレート・モジュールを新規作成し、その名前を「Bookmark Count(Blog全体)」にします。
次に、Blog全体の被ブックマーク数を表示するためのテンプレート・モジュールを作ります。
前述のタグのほかに、「MTBlogGetHatenaBookmarkCount」というタグを入れます。
このタグは、はてなブックマークでのBlog全体の被ブックマーク数を取得する働きをします。
例えば、Movable Typeの標準のテンプレートの場合、テンプレート・モジュールを以下のようにします。
<$MTBlogGetHatenaBookmarkCount$> <li class="module-list-item">はてなブックマーク:<$MTBlogHatenaBookmarkCount$></li> <li class="module-list-item">del.icio.us:<$MTBlogDeliciousBookmarkCount$></li> <li class="module-list-item">Livedoor clip:<$MTBlogLivedoorBookmarkCount$></li>
テンプレート・モジュールの入力が終わったら、それを保存します。
そして、そのテンプレート・モジュールのリアルタイム再構築を許可しておきます(手順は1月5日のエントリーを参照)。
次に、メインページのテンプレートに、被ブックマーク数を表示するための部分と、AjaxのJavaScriptを入れます。
その内容は、昨日のエントリーとほぼ同様です。
ただし、JavaScriptの5行目を以下のように変えます。
parameters : '<$MTRealtimeRebuildQueryParam tmpl_name="Bookmark Count(Blog全体)" ajax="1"$>',
ここまでが終わったら、メインページのテンプレートを保存して再構築します。
それ以後は、メインページにアクセスがあった時点で、Blog全体の被ブックマーク数が集計されて表示されるようになります。
ただし、MTBlogGetHatenaBookmarkCountタグでは、負荷軽減のために、直前にはてなブックマークのサーバーにアクセスしてから1分以内はアクセスをせずに、キャッシュした値を使うようになっています。