comment_reply_link()

comment_reply_link()
目次

comment_reply_link()とは?

comment_reply_link() は、WordPressで**コメントに対する「返信リンク」**を出力するテンプレートタグです。
コメント欄に「返信する」というリンクを表示し、そのリンクをクリックすると対象コメントへの返信フォームが表示されます。

このタグはコメントを**階層(ツリー構造)**で表示する仕組みの一部で、テーマファイルのcomments.phpによく使われています。

comment_reply_link()の主な用途

次のような用途で利用されます。

  • コメントへの返信を簡単に行えるようにする
  • コメントのツリー表示を作る
  • コメント同士のやり取りを視覚的に整理する

ブログやメディアサイトで訪問者同士のやり取りをわかりやすくするために便利です。

comment_reply_link()の基本的な使い方

最もシンプルな記述は以下の通りです。

<?php comment_reply_link(); ?>

この1行を、wp_list_comments()でループしているコメント部分に書くだけで、現在のコメントに対する返信リンクが表示されます。

ただし利用には条件があります。

条件

  • コメントループ内で呼び出す(wp_list_comments()comments_template()の中)
  • コメント階層を有効にしている

comment_reply_link()のパラメータ

comment_reply_link()は配列でオプションを渡すことで表示をカスタマイズできます。

以下は主なパラメータです。

add_below
返信フォームを表示するHTML要素のIDプレフィックスを指定します。
例: 'add_below' => 'comment' の場合、comment-123の直後に返信フォームが挿入されます。

depth
現在のコメントの深さを示します。
wp_list_comments()のコールバック関数に$depthとして渡される値をここに渡します。

max_depth
階層の最大深さを指定します。この深さに達すると返信リンクは表示されません。

reply_text
リンクに表示するテキストです。
例: 'reply_text' => '返信する'

login_text
ログインしていないユーザー向けに表示するテキストです。
例: 'login_text' => 'ログインして返信'

before / after
リンクの前後にHTMLを挿入できます。
例:

'before' => '<span class="reply-link">',
'after'  => '</span>',

comment_reply_link()の使用例

wp_list_comments()と組み合わせる例です。

wp_list_comments(array(
    'style'    => 'div',
    'callback' => 'my_custom_comment'
));

function my_custom_comment($comment, $args, $depth) {
    ?>
    <div id="comment-<?php comment_ID(); ?>">
        <p><?php comment_text(); ?></p>
        <div class="reply">
            <?php
            comment_reply_link(array_merge($args, array(
                'reply_text' => 'このコメントに返信する',
                'depth'      => $depth,
                'max_depth'  => $args['max_depth']
            )));
            ?>
        </div>
    </div>
    <?php
}

この例ではreply_textで表示文言を変更しています。

comment_reply_link()のカスタマイズのポイント

表示テキストの日本語化
reply_textlogin_textを日本語にすることで、訪問者にわかりやすい表示ができます。

'reply_text' => 'このコメントに返信',
'login_text' => 'ログインして返信する',

リンクの装飾
beforeafterでHTMLをラップし、CSSでデザインを調整できます。

階層の制限
max_depthで階層の深さを制限し、それ以上深い階層では返信できないようにできます。

comment_reply_link()の注意点

comment_reply_link()を利用するためには、WordPress管理画面「設定 > ディスカッション」で
「スレッド (入れ子) 形式でのコメントを有効にする」にチェックを入れてください。

JavaScriptファイルcomment-reply.jsが正しく読み込まれていないと返信フォームが動きません。
テーマのfooter.php<?php wp_footer(); ?>があるか確認してください。

comment_reply_link()のトラブル例

返信リンクが表示されない
→ 階層がmax_depthに達している、あるいはdepthの値の指定が正しくない場合があります。

返信フォームが表示されない
comment-reply.jsが読み込まれていないことが原因です。

comment_reply_link()のまとめ

comment_reply_link()はWordPressのコメント返信機能を支える重要なテンプレートタグです。

利用のポイント

  • wp_list_comments()のループ内で使う
  • reply_textlogin_textで文言をカスタマイズする
  • depthmax_depthで階層を管理する
  • comment-reply.jsを読み込む

このタグを正しく使うことで、訪問者同士が簡単にコミュニケーションできるコメント機能を実現できます。

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

この記事を書いた人

初めてホームページを作成したのは1996年。
2000年よりフリーランスで主に中小企業、学校、各種公的団体、個人事業主のWordPressを活用したホームページ制作を行っています。WordPressテーマはそれぞれのクライアントに合わせて作成しています。
WordPressを活用したサイト運営のための情報発信をしていきます。

目次