WordPress 3.0 以降のコメントフィールド

Posted on 2010年 8月 25日 水曜日 by takafumi

WordPress 3.0 以降はコメント入力フォームを表示するためのテンプレートがとんでもなく簡単になっています。

comment_form()

以上。

今までの苦労は何だったんでしょうか。しかも項目の追加とかカスタマイズも出来るようになってるらしいです。が、ここでも流行(?)の functions.php 経由。というわけでこれまでピンとこなかったんですがとりあえず触れるようになったので方法を書いてみることにしました。もちろんツッコミ大歓迎です。

早速結論です。コメント欄に twitter の項目を作って url の項目を消すには functions.php に以下のように追加します。

function custom_comment_fields($fields) {
$fields['url'] = '';
$fields['twitter'] = '<p class="comment-form-twitter"><label for="twitter">twitter@</label><input id="twitter" name="twitter" type="text" value="" size="15" /></p>';
return $fields;
}
add_filter('comment_form_default_fields','custom_comment_fields');

※もともと url に設定されている内容は wp-includes/comment-template.php の1528 行目あたりをご覧ください。

簡単といえば簡単。でも、これだけだと入力欄が表示されるだけで、書き込んでも twitter の項目はデータベースに記録されません。記録するためにはデータベースへ書き込むためにゴニョゴニョやらなきゃいけないらしいです。もちろん取り出すためにもゴニョゴニョ。というわけでとりあえずの使い道のメインは「お名前」とかをカスタマイズするぐらい? oops

そのうちコメントフォームをカスタマイズして記録と呼び出しまでしてくれるプラグインが出るんじゃないかなぁとか期待しておくのもいいかもしれません。

あと、デフォルトだと入力フォームの下に許可されているタグ一覧が表示されますが、これを消すにはテンプレートからフォームを呼び出すときに

comment_form(array('comment_notes_after'=>''));

としてあげます。他にもいろんな所にテキストを差し込んだり差し替えたり出来るんですが、詳しくは codex で。名前がそのまんま場所を表してる感じです。

Function Reference/comment form « WordPress Codex

というわけでテンプレートはどんどんシンプルになっていく感じですが、細かく設定しようと思えばそれなりにガッツリもどうぞ、という印象。もちろん if がいくつも重なってておっかなびっくり触らなきゃいけないのに比べたら格段に楽ちんです。

もっとちゃんとした説明が読みたい!というかたは

WordPress 3.0 Theme Tip: The Comment Form » Otto on WordPress

をどうぞ。コメント欄でもいろいろ補足されてます。

“WordPress 3.0 以降のコメントフィールド”へのコメント

コメントはまだありません。

“WordPress 3.0 以降のコメントフィールド”へコメントする

mrgreen neutral arrow idea ? ! -) roll twisted evil cry oops razz mad lol cool ??? shock eek sad smile grin

“WordPress 3.0 以降のコメントフィールド”へのトラックバックURL