はてなスターを設置
はてなスターを設置した。以前にも設置していたけど、Wordpressのテーマを切り替えたりで無くなっていた(ここらへんの運用はかなりテキトーなのでちょっと申し訳ない)。
基本的にははてなスターをブログに設置するにはを読めば良いんだけど、設置する際にちょっと手間取ったのでメモ。
Wordpress対応と書いてあるけどそれは多分Wordpress.comの話で、自由にテーマを切り替えられる野良Wordpressでは「はてなスター非対応のページでスターを設置するには、」以下を参考にentryNodesを設定する必要がある。
entryNodesで何を設定するのかというと、ページを読み込んだときのHTMLのどこにそのエントリのURL(uri)、タイトル(title)、スターを配置する要素(container)の3つをCSSのセレクタで指定してやる。
Wordpressのテーマはコードの整形が残念だったりすることがままあるので、そこはGoogle ChromeやSafari、Firefox(+Firebug)でInspect ElementしてDOMツリーを見た方が断然楽。
例えば次のようなツリー構造があったとする:
<div class="section">
<h3 class="section_title">
<a href="http://example.com/blog/20101205" class="permalink">エントリのタイトル</a>
</h3>
<div class="section_body">
<p>本文</p>
</div>
</div>
この場合、ヘッダ(header.php内のhead要素内)には次のような記述をする:
<script type="text/javascript" src="http://s.hatena.ne.jp/js/HatenaStar.js"></script>
<script type="text/javascript">
Hatena.Star.Token = "(ブログを登録したときに与えられるToken)";
Hatena.Star.SiteConfig = {
entryNodes: {
'div.section': {
uri: 'h3 a.permalink',
title: 'h3',
container: 'h3'
}
}
};
</script>
これははてなのサンプルのuriの部分を'h3 a'から'h3 a.permalink'に変更したもの。はてなブックマークのブックマーク数とか表示している場合にh3内に複数のa要素が出来て微妙じゃないか?もうちょっとclassを指定したほうが安全なんじゃ?と思ったので。
ただこの辺の調整はテーマによりけりなので、DOMツリーとCSSセレクタとを見比べながらやるしかない。