2012年2月
« 1月    
 12345
6789101112
13141516171819
20212223242526
272829  

カテゴリー

WordPressのブログにFacebookのコメント欄を追加する方法

当ブログにFacebookのコメント欄を追加しました。各記事にコメントすると、自分のfacebookのウォールにコメントした記事へのリンクとそのコメントが表示されます。(チェックを外すとコメント投稿のみ)

Facebookのコメントプラグイン(ブログパーツ)は以下から入手できます。

http://developers.facebook.com/docs/reference/plugins/comments/

但しここで作ったコードは、固定URLへのコメントになるので、ブログのURLを指定すると、

記事ごとにこのブログパーツを埋め込んだとしても、全てリンク先がブログのTOPになってしまいます。

(※WordPressで作成した当ブログでの確認結果です。アメブロなどのブログサービスでの動作は未検証です。)

これでは、せっかく投稿してもらっても、コメントがどの記事へのものか分からなくなるので、効果半減です。

WordPressでブログを作成している場合は、URLの部分をthe_permalink()関数に置き換えて、各記事のリンクがURLになるようにします。

echo ‘<br/><div id=”fb-root”></div><script src=”http://connect.facebook.net/en_US/all.js#appId=APP_ID&amp;xfbml=1″></script><fb:comments href=”‘;
the_permalink();
echo ‘” num_posts=”2″ width=”500″></fb:comments>’;

入れる箇所ですが、footer.php、もしくは使っているテーマの各記事のフッターを生成している箇所(bfa_post_part.phpなど)に入れます。

ブログのソースをブラウザなどで確認し、挿入したい箇所のHTMLを出力しているphpをサーバー内でgrepしてみてみるといいかと思います。

※挿入時の注意ですが、the_permalink()はリンクを文字列を返すのではなく、自身でリンクを出力(echo)しているようなので、上記のようにechoを分けて書く必要があります。

(echo ‘<fb:comments…’ + the_permalink() + ‘/fb:comments>’のように書いてもうまくいきません)

記事のURLを動的に取得するすべがあるブログであれば、同じような感じでブログに埋め込めると思います。

Facebookをやっていて自身のブログをお持ちの方はぜひ試してみてください。




WordPressモバイルプラグイン「WPtap」

以前、当ブログのモバイル対応時の問題点について書きましたが、共有ボタンやテンプレートの充実にために別のモバイル用プラグインを使うことにしました。

それで見つけたのが、このWPtap News Press

それほど知名度があるわけではないようですが、カスタマイズなど含め結構使えるプラグインです。

AddThis プラグインとの相性もいいので、モバイル版にも共有ボタンを貼れます。

ヘッダーのブックボタンを押すと、自分のTwitterやFacebookページのアイコンも出てくるので、

PC+スマートフォンでビジネスブログを展開したい人にはお勧めかと思います。

当ブログは、テーマに少し手を入れて、会社HPのバナーと言語切り替えメニュー(qtranslateの関数)

も入れました。

但し、やはり上記記事で書いたように、デフォルトで日本語の日付が文字化けする。:-(

以前は、テーマのソースを書き換えたのですが、どうやらテーマが原因ではなく、qtranslateのバグだったようです。

以下の記事を参考にさせていただきました。

http://formula1.gimlet301515.com/WordPress/?p=407

.moとかいじるのが面倒くさったので、とりあえず言語の書式設定をyyyy.mm.dd形式にして、カレンダーアイコンの部分だけ、テーマのソースを修正(フォーマット文字列を変えただけですが)して対応。

それにしても、やはりオープンソースの世界になると、まだまだこういった、ローケルや文字コードに依存する問題があるものですね。

(そういったバグを調べてちゃんと動くようにするのもそれはそれで楽しいですが)



WordPressテンプレートの日付書式の変更

先日、Carrington Mobileというテンプレートを使って、当サイトをモバイル対応しました。

スマートフォンでもきれいに表示されてなかなか優れものですが、1点難点が。

記事の日付がことごとく文字化け、または表示されない

原因は、テンプレートのコメントの日付、時間のフォーマット処理がうまく働いていない。

該当箇所を見つけ出し、とりあえず固定のyyyy.mm.dd形式にして解決。

ちなみに、当サイトのPC版テンプレートAtahualpaでも同様の現象が起こります。

該当箇所の見つけ方としては、ベタですが、

themes/… 以下の該当テンプレートディレクトリを”date(”などでgrepする。

見つかったPHPのget_comment_dateやcomment_datedateなどを呼び出し箇所を探して以下のように直す。

<p>by <cite><?php comment_author_link() ?></cite> on <a href=”#comment-<?php comment_ID() ?>” title=”"><?php comment_date(‘Y.m.d ‘) ?> <?php comment_time(‘H:i:s‘) ?></a> <?php edit_comment_link(‘e’,”,”); ?></small></p>

ここに別の書式文字が指定されていたり、引数なしの場合、うまく表示されないことが多いです。

※但し、これらの関数の挙動はホスティングしているサーバーのPHPの設定やロケールで変わるので、一概にそうとは言えない。

該当ファイルは、Atahualpaの場合、

bfa_custom_comments.php

※ちなみに、このファイルが関係するのはコメントの日付。記事の日付などは、Atahualpaのテーマオプション画面で変更できます。(%date()% の部分を%date(‘Y.m.d H:i:s’)%などに変える。)

<?php printf(__(‘%1$s  ‘at’を削る %2$s’,'atahualpa’), get_comment_date(__(‘Y.m.d‘,’atahualpa’)),  get_comment_time(__(‘H:i:s‘,’atahualpa’))) ?>

Carrington Mobileの場合は、

comment-default.php

など数ファイルです。

PHPの書式フォーマットについては、こちら

本当は、タイムゾーンをUTCで管理して、アクセス元のIPなどで国判別して、時差計算して表示するとかしたいんだけど(せっかく多言語ブログなので)、そういったプラグインないかな?

Atahualpaの日付バグについては、こちらの記事も参照してみてください。