1. WordPress

【WordPress】コメント欄を追加する方法。スレッド形式の対応方法も解説

Share

当記事では、WordPressでコメント欄を作成する方法を解説します。

コメント欄の作成方法だけでなく、スレッド形式の対応方法も解説します。

WordPressでコメント欄を表示させたい方は、ぜひ当記事を参考にしてください。

コメント欄を追加する方法

comments.phpを作成

コメント用のテンプレートとしてcomments.phpを作成します。

comments.phpとファイル名を付けると、comments_template関数で呼び出すことができます。

comments.php
<div id="comments" class="comments">
    <?php if( have_comments() ): //コメントがあったらコメントリストを表示する ?>
        <h2 class="comments__title">コメント<span class="comments__num">(<?php comments_number('0','1','%'); ?>件)</span></h2>
        <ul class="comments__list">
            <?php wp_list_comments( 'avatar_size=80' ); // コメントの一覧 ?>
        </ul>
    <?php endif; ?>
        <?php if( get_comment_pages_count() > 1 ): ?>  
            <div class="pager pager--comments">
                <?php
                
                paginate_comments_links( array(
                    'prev_text' => '&laquo;',
                    'next_text' => '&raquo;',
                    'mid_size'  => 0,
                ) );
                
                ?>
            </div>
    <?php endif; ?>
    <?php
    
    comment_form( array(
        'title_reply' => 'コメントする',
        'label_submit' => 'コメントを送信',
        'title_reply_before' => '<h2 class="comment-title"><span class="comment-title-inner">',
        'title_reply_after' => '</span></h2>',
    ) );

    ?>
</div>

single.phpで、テンプレートを読み込む

single.phpのコメントを表示させたい箇所に、以下のコードを記述します。

single.php
<?php if ( comments_open() ) comments_template(); ?>

記事によってはコメント欄を非表示に設定している場合があるので、comments_open関数でコメントを受け付けているかを判定します。

comments_template関数でcomments.phpテンプレートが読み込まれます。

コメントをスレッド形式に対応させる

スレッド形式の場合、コメントに返信しようとする時、コメントの入力フォームが下の方にあると不便です。

次の方法でJavaScriptを追加すると、返信するコメントの下にコメント入力フォームが自動で移動するようになります。

functions.phpに以下のコードを追加してください。

functions.php
function my_theme_enqueue_scripts() {

    if (is_single() && comments_open() && get_option('thread_comments')) {
        wp_enqueue_script( 'comment-reply' );
    }
}
add_action( 'wp_enqueue_scripts', 'my_theme_enqueue_scripts' );

このコードを追加するだけで対応させることができます。