けっこう苦労したので、自分向けメモとして記録しておく。(はてなスターは今は外してあります)
以下のページに書いてあるように、基本的には、ヘッダに設定を書いて終わりである。
ただ、Drupal の場合(というかこのサイトのテーマの場合)、フロントページと個々のエントリページとで構造が異なるのがやっかいだった。
- フロントページでは id=content というブロックの中に class=node というブロックが複数個並ぶ。はてなスターを付けたい場所は、class=nodeのブロックの中のh2で書いたタイトルの末尾である。
- 個々のエントリページでは、id=content というブロックの中にh1でタイトルを書き、さらにclass=nodeというブロックの中に本文を書く。
最初は、両方のページに対応させるように、エントリノードの中身を複数個書いてみた。
ところが、フロントページにはh1が無く、個々のエントリページにはh2が無いため、このような書き方はうまく行かないようだ。(そのページにとって正しい記述が最初に書いてあればうまく行く)
結局、ページの構造を判断するための条件を見つけ出して、判定させることでうまく行った。
<script type="text/javascript" src="http://s.hatena.ne.jp/js/HatenaStar.js"></script> <script type="text/javascript"> Hatena.Star.SiteConfig = { entryNodes: { <?php if ($title): ?> 'div#content-inner': { uri: 'window.location', title: 'h1.title', container: 'h1.title' } <?php else: ?> 'div.node-inner': { uri: 'h2.title a', title: 'h2.title', container: 'h2.title' } <?php endif; ?> } }; </script>