
comment_date()の用途
comment_date()
は、コメントが投稿された日付を表示するテンプレートタグです。
WordPress テーマでコメントのメタ情報を表示する際、日付をわかりやすく出すために使います。
comment_date()の基本的な使い方
最もシンプルな使い方は下記です。
<?php comment_date(); ?>
この場合、WordPress 設定の「日付のフォーマット」に従った形式で表示されます。
たとえば、設定で「Y年n月j日」としていれば、
2025年7月1日
のように表示されます。
フォーマットを指定する
comment_date()
では、任意のフォーマットを指定することができます。
書式は date()
関数と同じ形式です。
comment_date()の使用例
<?php comment_date('Y/m/d'); ?>
表示例:
2025/07/01
comment_date()のよく使うフォーマット
フォーマット | 出力例 |
---|---|
Y/m/d | 2025/07/01 |
Y年n月j日 | 2025年7月1日 |
M j, Y | Jul 1, 2025 |
l, F j, Y | Tuesday, July 1, 2025 |
comment_date()の書式文字の一覧(一部)
以下は日付フォーマット文字の例です。
フォーマット文字 | 内容 |
---|---|
Y | 4桁の年(例:2025) |
y | 2桁の年(例:25) |
m | 2桁の月(01~12) |
n | 月(先頭に0なし、1~12) |
d | 日(01~31) |
j | 日(先頭に0なし、1~31) |
D | 曜日略称(Monなど) |
l | 曜日(Mondayなど) |
M | 月略称(Janなど) |
F | 月(Januaryなど) |
フォーマットを工夫することで、様々な表示が可能です。
comment_time()との違い
コメント日時を表示する場合、日付だけなら comment_date()
、時刻だけなら comment_time()
を使います。
両方をまとめて表示したい場合は get_comment_date()
と get_comment_time()
を組み合わせるか、comment_date()
に時刻フォーマットを含める方法もあります。
例:日付と時刻を同時に出す
<?php comment_date('Y/m/d H:i'); ?>
出力例:
2025/07/01 13:45
comment_date()の使用例
コメントループ内でよく見かける例です。
<li id="comment-<?php comment_ID(); ?>">
<div class="comment-meta">
<?php comment_author_link(); ?>
<span class="comment-date">
<?php comment_date(); ?>
</span>
</div>
<div class="comment-content">
<?php comment_text(); ?>
</div>
</li>
ここでは投稿者名の隣に日付を表示しています。
フィルターでカスタマイズ
comment_date()
の出力はフィルターフック get_comment_date
を利用してカスタマイズ可能です。
例:曜日を強調表示する
以下のコードを functions.php
に追加します。
add_filter('get_comment_date', function($date, $format, $comment){
$weekday = date_i18n('l', strtotime($comment->comment_date));
return $date . ' (' . $weekday . ')';
}, 10, 3);
出力例:
2025年7月1日 (Tuesday)
関連する関数
コメント日時の表示には、以下の関数も用意されています。
関数名 | 内容 |
---|---|
comment_date() | コメントの日付を表示 |
get_comment_date() | コメントの日付を取得(文字列で返す) |
comment_time() | コメントの時刻を表示 |
get_comment_time() | コメントの時刻を取得(文字列で返す) |
comment_date()
は「出力する」関数で、get_comment_date()
は「文字列を取得する」関数です。
get_comment_date() の使い方
get_comment_date()
を使えば、日付を変数に格納できます。
例
<?php
$date = get_comment_date('Y/m/d');
echo '<time datetime="' . esc_attr($date) . '">' . esc_html($date) . '</time>';
?>
このように <time>
タグに入れてマークアップを充実させるのもおすすめです。
comment_date() と国際化
comment_date()
は内部で date_i18n()
を利用しているため、
WordPressのロケール設定に応じて自動的に翻訳対応します。
たとえば日本語環境なら F
は January
ではなく1月
に翻訳されます。
カスタムフォーマットと時間
もし日付と時間を分けて出したい場合はそれぞれの関数を組み合わせます。
例:
<?php
echo comment_date('Y年n月j日');
echo ' ';
echo comment_time('H:i');
?>
出力例:
2025年7月1日 13:45
よくある誤解
comment_date() はループ外では動かない?
実際には、グローバル $comment
がセットされていないときに正しく動きません。
そのため、ループ外で使う場合は第2引数にコメントIDを明示的に渡す必要があります。
例
<?php comment_date('Y/m/d', $comment_id); ?>
第2引数の使い方
comment_date()
は第2引数にコメントIDを渡せます。
comment_date( string $format = '', int|WP_Comment $comment_id = null )
この場合、指定したコメントの日時が表示されます。
まとめ
comment_date() のポイント
- コメントが投稿された日付を表示する
- フォーマット指定が可能
comment_time()
と組み合わせて日時を出せる- 出力ではなく取得したいときは
get_comment_date()
を使う - 国際化対応で多言語サイトも安心
- ループ外ではコメントIDを指定する
コメントメタ情報の表示に欠かせない関数です。
必要に応じてカスタマイズして活用してください。