comment_author() は、特定のコメント投稿者の名前を表示するテンプレートタグです。WordPressテーマの comments.php ファイルで使用され、各コメントの投稿者名を取得して出力します。
機能の説明
comment_author() は、コメントの投稿者名を表示するためのタグです。このタグを使うことで、個々のコメントの投稿者が誰かを簡単に表示できます。コメントのループ内で使用するのが一般的です。
シンプルなコード例
<?php comment_author(); ?>現在のコメントの投稿者名を表示します。主に comments.php 内で、コメントループの中で使用されます。
使い方の解説
- comment_author()は、主にコメント一覧のテンプレート (- comments.php) 内で利用されます。
- 各コメントごとに呼び出され、該当コメントの投稿者名を出力します。
- 文字列を返すのではなく、そのまま出力するため、出力を一時的に保存したい場合は get_comment_author()を使用します。
使用例
<ul class="comment-list">
    <?php 
    wp_list_comments([
        'callback' => function ($comment, $args, $depth) {
            ?>
            <li>
                <strong><?php comment_author(); ?></strong>  
                <p><?php comment_text(); ?></p>
            </li>
            <?php
        }
    ]);
    ?>
</ul>このコードでは、wp_list_comments() のコールバック関数内で comment_author() を使用し、コメント投稿者の名前を <strong> タグで囲んで表示しています。
一緒に使うことが多い関連タグ
get_comment_author()
このタグは、コメント投稿者の名前を文字列として取得するバージョンです。
<?php 
$author = get_comment_author($comment_id);
echo '<p>投稿者: ' . esc_html($author) . '</p>';
?>get_comment_author() は、comment_author() と異なり、出力するのではなく文字列を返します。このため、echo で表示する必要があります。
comment_text()
comment_text() は、特定のコメントの本文を表示します。
<li>
    <strong><?php comment_author(); ?></strong>
    <p><?php comment_text(); ?></p>
</li>このコードでは、comment_author() と comment_text() を組み合わせて、各コメントの投稿者名とコメント内容を表示しています。
get_comment_date()
get_comment_date() は、コメントが投稿された日付を取得します。
<p><?php echo get_comment_date('Y年m月d日'); ?></p>このコードは、指定されたフォーマット(例:Y年m月d日)でコメントの日付を表示します。
追加情報を取得したい場合
投稿者のURLやメールアドレスを取得
comment_author_url() や comment_author_email() を使うと、投稿者のURLやメールアドレスも表示できます。
<p>投稿者: <a href="<?php comment_author_url(); ?>"><?php comment_author(); ?></a></p>このコードでは、投稿者のURLが設定されている場合にリンクとして名前を表示します。
get_comment_author_email() で取得できる情報
<?php echo get_comment_author_email(); ?>このコードでコメント投稿者のメールアドレスを取得できます。
そのテンプレートタグで出力できる情報
- email:投稿者のメールアドレス
- name:投稿者名
- url:投稿者のウェブサイトURL(設定がある場合)
想定されるトラブル
投稿者名が表示されない
コメント投稿者が匿名でコメントしている可能性があります。
解決方法
コメントフォームで「名前の入力を必須」にする設定を有効にします。
トラブル2: HTMLエスケープが必要な場合
投稿者名が不正なHTMLを含んでいる可能性があります。
解決方法
esc_html() 関数を使って、出力をエスケープします。
<?php echo esc_html(get_comment_author()); ?>Q&A
まとめ
comment_author() は、コメント投稿者名を表示するための基本的なテンプレートタグです。
comments.php で使用され、comment_text() や get_comment_date() などの関連タグと組み合わせて使うことで、コメントの表示を柔軟にカスタマイズできます。
また、セキュリティの観点からは、esc_html() でのエスケープも考慮する必要があります。

コメント