WordPressにはてなスターを設置するときに詰まるところ


はてなスターを設置しようとして,普通にやってもうまくいかなかったのでメモとしてまとめました.一応これではてなスターが表示されるようになりました.

はてなスターから取ってくるもの

はてなスターのページにログインし,[外部のブログサイトを登録する]にURLをいれると表示されるものをコピーしてくる.以下のようなもの.ただし,*********…の部分はURLによって異なる.

<script type="text/javascript" src="http://s.hatena.ne.jp/js/HatenaStar.js"></script>
<script type="text/javascript">
Hatena.Star.Token = '********************************';
</script>

これを,自分の[外観]→[テーマ編集]のheader.phpの</title>の次あたりに貼りつけておく.

これだけでうまくはてなスターが表示されるようになることもあるが,使用しているテンプレートによっては,はてなスターが表示されない場合がある.

自分のブログのスタイルに合わせた設定

Hatena.Star.EntryLoader.headerTagAndClassNameに,[タグ名,クラス名]をセットすることで,そのタグで囲まれた部分の後ろにはてなスターが設置される.タグ名=h1,クラス名=entry-titleの場合次のようになる.これをheader.phpに貼り付ける.

<script type="text/javascript">
Hatena.Star.EntryLoader.headerTagAndClassName = ['h1','entry-title'];
</script>

この場合,

<h1 class='entry-title'><a href='記事のパーマリンク'>記事のタイトル</a></h1>

の後ろにはてなスターが設置される.自分のブログがこういう形式になってない場合は、記事のスタイルを編集する必要がある.エントリのタイトルは<?php the_title(); ?>で、パーマリンクは<?php the_permalink(); ?>で取得できるので,例えば,

<h1><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h1>

というふうに設定しておけば良い.この設定をするのは,[外観]→[テーマ編集]の,loop.phpとsingle.php.loop.phpは,複数エントリを表示する画面で,single.phpは,単一のエントリを表示する画面.

loop.phpとsingle.phpで,エントリのタイトルを囲むタグが異なる場合は,上記Hatena.Star.EntryLoader.headerTagAndClassNameの設定を,header.phpではなく,loop.phpとsingle.phpの一番上にそれぞれ設定を変えて貼り付ける.

WordPressに入れておくべきプラグイン5つ


さっそくWordPressを使いこなそうと,色々なプラグインを探しています.さっそくいつか入れたので紹介します.

Hatena Star

その名の通り,はてなスターを表示するプラグインです.(入れてみたものの,うまくいかなかったので使ってません….結局テンプレートに直書きで対処しました.)

wp-hatena

WordPressの各エントリをはてなブックマーク/deliciousするクイックリンクを追加するプラグインです.こちらが本家ですが,拡張版のこちらをいれています.拡張版の方では,はてブとdelicious以外にも,Livedoorクリップなど10種類のSBS(Social Bookmark Service)に対応しています.

Ultimate Google Analytics

僕はこれまでGoogleAnalyticsでアクセス解析をしてきました.このブログでもそれをしたいので,このプラグインの出番です.Ultimate Google Analyticsでは,設定画面でトラッキングIDを設定すれば,各ページに自動的にスクリプトを仕込んでくれます.さらに,pdfとかのダウンロードまでちゃんとカウントしてくれるようになるようです.

"WordPressに入れておくべきプラグイン5つ"の続きを読む

私がWordPressを使い始めた3つの理由


この夏の終りに,WordPress始めました.

理由1:ネタの分離/整理

今まではてなダイアリー(ブログ(笑))を使っていたのですが,技術ブログや日記やTwitterのまとめポストなど様々なものをいれすぎて,ワケが分からなくなってきたので,技術ブログをこちらに移します.

理由2:最新技術のキャッチアップ

世の中ではWordPress vs MovableTypeの戦いが起こっているらしい.こういうのに興味がある者としては,多少なりとも触っておきたい.というわけでここ数年伸びてきているらしいWordPressを使ってみます.別にどっちでもよかったんだけれども.

"私がWordPressを使い始めた3つの理由"の続きを読む

C++難しい><


このコードがコンパイル通らない理由がわからない…

template <class T>
class Test{
public:
typename T::param_type hige;
};
class hoge: public Test<hoge>{
public:
typedef int param_type;
};
int main(){
hoge x;
x.hige=0;
}

CRTPの勉強


先日CRTP(Curiously Recursive Template Pattern)の勉強をしたので,それのメモ.

CRTPとは,基底クラスをクラステンプレートとして定義して,派生クラスでは,その基底クラスのテンプレート引数部分に自分自身を突っ込むものです.

基底クラス内で,派生クラスの型へキャストでき,派生クラスのみで定義した関数を呼び出せるのがポイント.

あとは,コード中に書いたコメント参照.

#include <iostream>
template <typename Inherited>
struct Base{
void apply(){
// Inheriedにダウンキャストし,そこで定義されているはずのapply_impl()を呼び出す
static_cast<Inherited&>(*this).apply_impl();
}
void test(){
std::cout << "Base" << std::endl;
}
};
struct Inherit1: public Base<Inherit1>{
void apply_impl(){
std::cout << "Inherit 1" << std::endl;
}
};
struct Inherit2: public Base<Inherit2>{
void apply_impl(){
std::cout << "Inherit 2" << std::endl;
}
};
// Baseの派生クラスのみを受け取る関数
template<typename T>
void check(Base<T>& t){
// ポイント1:ここには,Base<T>のサブクラスのインスタンスしかこない(t.test()が呼べる)
// ポイント2:Base<T>のサブクラスにapply_impl()が定義されてないとコンパイルエラー
// ポイント3:tのapply()は多態的に呼び出される
// ポイント4:仮想関数ではないため呼出しにオーバーヘッドがない
t.apply();
t.test();
}
int main(){
Inherit1 inh1;
Inherit2 inh2;
check(inh1);
check(inh2);
}

五山の送り火


行ってきました.撮ってきました.

今回は三脚を持って,撮影する気まんまんで.

場所は市内某所.

大文字.夜景と.

こんな感じできれいに撮れました.

サークルの後輩たちと行ったので,後輩たちも入れて撮ってみたのがこちら.

大文字を見る後輩たち

やっぱり暗いと撮影が難しい‥.もっと腕を磨かないと.

photo stream: http://www.flickr.com/photos/30526750@N05/