コメント機能を使う

コメント機能を使うのは結構簡単ですが、思ったとおりにカスタマイズしようとすると結構(すごく?)めんどくさいです。

まず単純に利用するだけならループの中で

<?php comments_template(); ?>

とすればコメント書き込み用のフォームとこれまでに書き込まれたコメントが表示されます。これはデフォルトテーマからコメント表示と書き込みフォームの部分だけを借りてくる仕組みになっています。

ですので項目の並びとかそれを囲むタグとかが自由になりません。スタイルシートでのカスタマイズで満足できればいいですが、それでは足りない場合はデフォルトテーマから借りてきているコメント表示と書き込みフォームの部分、comments.php というファイルを自分で用意する必要があります。

comments.php の中身は最低限

<?php wp_list_comments(); ?>
<?php comment_form(); ?>

だけでコメントの表示と書き込みフォームの表示までは出来ます。しかし表示にパスワードが必要な場合の処理が必要なので

<div id="comments">
<?php if ( post_password_required() ) : ?>
				<p class="nopassword"><?php _e( 'This post is password protected. Enter the password to view any comments.', 'twentyten' ); ?></p>
			</div><!-- #comments -->
<?php
		return;
	endif;
?>

<?php wp_list_comments(); ?>
<?php comment_form(); ?>

</div><!-- #comments -->

とするのがいいらしいです。TwentyTen によれば。外側の div はお好みで。

デフォルトで出力されるコメントの html を変えたい場合は callback オプションを指定して functions.php に関数を定義して…という方法があるんですが、これは非推奨らしいです。…って、、ぇ?

つまり CSS で何とかしろってことなのかそのうち他の方法が提供されるのか…後者だったらいいなぁ。

いちおう方法も解説されてるので興味がある方は Codex をどうぞ。

テンプレートタグ/wp list comments – WordPress Codex 日本語版

Function Reference/wp list comments « WordPress Codex
(日本語版にのってないオプションがのってます)

ところで comments.php の中身を直接 index.php へ書いちゃダメなの?という点について。残念ながらダメです。うまく動いてくれません。というわけでコメント機能を使いたければ必ず comments_template() を使う必要があるようです。どうも単に呼び出すだけじゃなくっていろいろゴニョゴニョしてるっぽい。

とりあえずここまででいちおうテーマとしての機能を一通り実装できたんじゃないかと思います。ですので早めに使ってみる予定です。予定です。

次からはテンプレートを増やしていきます。

今回使ったファイル:06comments

コメントする

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です