Vicunaではてすた個別エントリーの修正版
どうも、ぼくです。
Vicuna スタイルではてすたをいじるときのエントリーをいくつか書いたのですが、それの修正版ですね。
一覧ページにははてすたがいっぱい出てくるんですが、個別ページでは、タイトルにリンクが貼られていないので、無理矢理やる方法を紹介しましたが、なんか先日それをさらに修正してかなり楽しいことをしている人を発見したので、もう loadEntries を上書きしてしまう方法にしました。
ちなみに従来の方法の
<h1><a href="<?php echo get_permalink() ?>"><?php the_title(); ?></a></h1>
だとリンクの色が変わってしまうので
<h1><a href="<?php echo get_permalink() ?>" style="display: none;" ><?php the_title(); ?></a>
<?php the_title(); ?></h1>
のような解決方法にするのが流行っているようですが、これだと、もうなんの為の Vicuna スタイルか訳分からなくなってますね。(一時期僕もこれでやっていたわけですが^^;)
まぁ、CSS をオフにするその他音声ブラウザとかは企業のページじゃないしあんまり気にしてないんだけど、タイトルの部分をコピペなんかすると display:none の部分もコピーされてしまうので、タイトルが 2 回連続の文字列がクリップボードに保存されてしまうんですよ。
これは結構致命的ですよね orz
まぁ、本題です。下のコードを WP.Vicuna のシングルポストのページに適用すればおk
Hatena.Star.EntryLoader.loadEntries = function() {
var entry = new Hatena.Star.Entry.Vicuna(document.getElementsByTagName('h1')[0]);
return [entry];
}
Hatena.Star.Entry.Vicuna = new Ten.Class({
initialize: function(h1) {
this.title = h1.firstChild.nodeValue;
this.uri = '<?php echo get_permalink() ?>';
this.comment_container = Hatena.Star.EntryLoader.createCommentContainer();
h1.appendChild(this.comment_container);
this.star_container = Hatena.Star.EntryLoader.createStarContainer();
h1.appendChild(this.star_container);
}
});
それに伴って、
Hatena.Star.EntryLoader.headerTagAndClassName = ["h1","entry_title"];
の部分は削除するかコメントアウトしてしまえばよいです。まぁしなくても動くと思いますが。
これで、リンクの無いタイトル文字列にはてすたをつけることができますね。
おめでとうございます。ありがとうございます。