MENU

comment_text()

comment_text() は、WordPressのコメントの 本文(テキスト)を出力するテンプレートタグ です。コメントの中身をHTML形式で出力するため、ブログや投稿に対するユーザーのコメント内容を表示する際に利用されます。

目次

機能の説明

comment_text() は、特定のコメントの内容をそのまま表示します。デフォルトで改行やリンクなどのHTMLが有効化されており、コメント内で使用される基本的なHTMLタグの整形も行います。

シンプルなコード例

<?php comment_text(); ?>

このコードをコメントループ内で使用することで、各コメントの内容が表示されます。

使い方の解説

comment_text() は、通常 wp_list_comments() のループ 内で使用します。このタグは、各コメントの本文をフォーマットしてHTMLで出力するので、ユーザーが投稿した内容をそのままサイト上に表示することができます。

また、comment_text() は第2引数としてコメントIDを指定することもでき、 任意のコメントの内容 を取得するのにも使えます。

使用例

<?php 
wp_list_comments(array(
    'style' => 'ul',
    'callback' => function($comment, $args, $depth) {
        ?>
        <li id="comment-<?php comment_ID(); ?>" <?php comment_class(); ?>>
            <div class="comment-body">
                <div class="comment-content"><?php comment_text(); ?></div>
            </div>
        </li>
        <?php
    }
));
?>
  • wp_list_comments() のコールバック内で comment_text() を呼び出し、各コメントの本文を表示しています。
  • コメント本文はHTMLタグが有効で、投稿者が使用したリンクや改行もそのまま出力されます。

一緒に使うことが多い関連タグ

get_comment_text()

このタグは、コメントの内容を 取得して文字列として返す テンプレートタグです。comment_text() が内容を直接出力するのに対し、get_comment_text() は変数に代入したり操作するために使います。

<?php 
$comment_content = get_comment_text(5); // IDが5のコメントの本文を取得
echo '<p>コメント内容: ' . $comment_content . '</p>';
?>

get_comment_text() を使うことで、特定のコメントの本文を取得し、自由に操作やカスタマイズが可能になります。

<?php 
wp_list_comments(array(
    'style' => 'ul',
    'callback' => function($comment, $args, $depth) {
        ?>
        <li id="comment-<?php comment_ID(); ?>" <?php comment_class(); ?>>
            <div class="comment-content">
                <?php 
                $content = get_comment_text();
                echo '<strong>コメント:</strong> ' . $content; 
                ?>
            </div>
        </li>
        <?php
    }
));
?>

get_comment_text() で取得した内容を変数に代入し、任意のHTMLや文字列と一緒に出力しています。

comment_ID()

このタグは、現在のコメントの IDを取得して出力 します。コメントに固有のIDを付与することで、特定のコメントを対象としたCSSやJavaScriptの処理が可能になります。

<?php comment_ID(); ?>

comment_class()

このタグは、各コメントに対して CSSクラスを自動で付与 します。コメントの階層や状態に応じたクラスが自動的に割り当てられます。

<li id="comment-<?php comment_ID(); ?>" <?php comment_class(); ?>>
    <?php comment_text(); ?>
</li>

この例では、comment_class() でコメントに自動生成されたクラスを付与し、IDには comment_ID() を使用しています。

追加情報を取得したい場合

comment_text() で出力されるコメントの内容に フィルターフックを適用 して、さらにカスタマイズを加えたい場合があります。WordPressには comment_text という フィルターフック が用意されており、これを利用することで出力を変更できます。

<?php 
add_filter('comment_text', function($text) {
    return '<div class="formatted-comment">' . $text . '</div>';
});
?>

この例では、comment_text フィルターを使って、すべてのコメント内容を <div> タグでラップしています。

出力できる情報

  • comment_ID:コメントの固有ID
  • comment_author:コメント投稿者の名前
  • comment_date:コメントの投稿日時
  • comment_content:コメントの本文

想定されるトラブル

コメントがHTMLで正しく表示されない

テーマがコメントの内容を エスケープ処理 している可能性があります。

解決方法

テーマのコードを確認し、必要に応じて esc_html()wp_kses() の使用を見直します。

コメント内容が表示されない

コメントの状態が「非公開」や「保留中」の場合、comment_text() では表示されません。

解決方法

管理画面で該当コメントの ステータスを公開 に変更します。

Q&A

comment_text()get_comment_text() の違いは?

comment_text() はコメントの内容を 直接出力 しますが、get_comment_text() は内容を文字列として 取得して返します

コメントの表示にCSSを適用したいのですが?

comment_class() タグを使って、各コメントに自動的に割り当てられるCSSクラスを利用します。

特定のHTMLタグをコメントで無効にするには?

wp_kses() 関数を使って、許可するHTMLタグを指定できます。

<?php 
$allowed_tags = array('a' => array('href' => array()));
echo wp_kses(get_comment_text(), $allowed_tags);
?>

まとめ

comment_text() は、WordPressで コメントの内容を出力するテンプレートタグ です。

通常、wp_list_comments() の中で使用され、ユーザーが投稿したコメント内容をHTMLとして表示します。comment_ID()comment_class() などの関連タグと組み合わせて使うことで、コメントの見た目や構造を自由にカスタマイズすることが可能です。


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

コメント

コメントする

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

目次