MENU

comment_author()

comment_author() は、特定のコメント投稿者の名前を表示するテンプレートタグです。WordPressテーマの comments.php ファイルで使用され、各コメントの投稿者名を取得して出力します。

目次

機能の説明

comment_author() は、コメントの投稿者名を表示するためのタグです。このタグを使うことで、個々のコメントの投稿者が誰かを簡単に表示できます。コメントのループ内で使用するのが一般的です。

シンプルなコード例

<?php comment_author(); ?>

現在のコメントの投稿者名を表示します。主に comments.php 内で、コメントループの中で使用されます。

使い方の解説

  1. comment_author() は、主にコメント一覧のテンプレート (comments.php) 内で利用されます。
  2. 各コメントごとに呼び出され、該当コメントの投稿者名を出力します。
  3. 文字列を返すのではなく、そのまま出力するため、出力を一時的に保存したい場合は 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

投稿者名を編集することはできますか?

はい、管理画面の「コメント」一覧から編集するか、以下のようにプログラムで変更できます。

wp_update_comment([
    'comment_ID' => $comment_id,
    'comment_author' => '新しい名前'
]);

投稿者がURLを入力しなかった場合の対処は?

comment_author_url() で取得したURLが空の場合、代わりに別のテキストを表示できます。

<?php 
$url = get_comment_author_url();
if ($url) {
    echo '<a href="' . esc_url($url) . '">' . comment_author() . '</a>';
} else {
    echo comment_author();
}
?>

まとめ

comment_author() は、コメント投稿者名を表示するための基本的なテンプレートタグです。

comments.php で使用され、comment_text()get_comment_date() などの関連タグと組み合わせて使うことで、コメントの表示を柔軟にカスタマイズできます。

また、セキュリティの観点からは、esc_html() でのエスケープも考慮する必要があります。

よかったらシェアしてね!
  • URLをコピーしました!

コメント

コメントする

This site uses Akismet to reduce spam. Learn how your comment data is processed.

目次