Title: コメントの表示スクリプト
Last modified: 2011年10月17日

---

# コメントの表示スクリプト

 *  解決済 [shigebooo](https://ja.wordpress.org/support/users/shigebooo/)
 * (@shigebooo)
 * [15年前](https://ja.wordpress.org/support/topic/%e3%82%b3%e3%83%a1%e3%83%b3%e3%83%88%e3%81%ae%e8%a1%a8%e7%a4%ba%e3%82%b9%e3%82%af%e3%83%aa%e3%83%97%e3%83%88/)
 * いつもお世話になっております。
 * 例えば、コメントが２０件あり、初期状態では最新５件を表示し、下部に「全てのコメント
   を表示する」などのリンクボタンで全てを表示できるプラグインやスクリプトをご存知
   の方いらっしゃいませんか？
 * もしくはちょちょいと組めちゃうというすごい方などいませんでしょうか？

15件の返信を表示中 - 1 - 15件目 (全15件中)

 *  モデレーター [けい (Kei Nomura)](https://ja.wordpress.org/support/users/mypacecreator/)
 * (@mypacecreator)
 * [14年、 12ヶ月前](https://ja.wordpress.org/support/topic/%e3%82%b3%e3%83%a1%e3%83%b3%e3%83%88%e3%81%ae%e8%a1%a8%e7%a4%ba%e3%82%b9%e3%82%af%e3%83%aa%e3%83%97%e3%83%88/#post-143183)
 * これのことでしょうか？
    [http://codex.wordpress.org/Template_Tags/paginate_comments_links](http://codex.wordpress.org/Template_Tags/paginate_comments_links)
 *  モデレーター [けい (Kei Nomura)](https://ja.wordpress.org/support/users/mypacecreator/)
 * (@mypacecreator)
 * [14年、 12ヶ月前](https://ja.wordpress.org/support/topic/%e3%82%b3%e3%83%a1%e3%83%b3%e3%83%88%e3%81%ae%e8%a1%a8%e7%a4%ba%e3%82%b9%e3%82%af%e3%83%aa%e3%83%97%e3%83%88/#post-143184)
 * 設定＞ディスカッション設定　のことかな？
 *  トピック投稿者 [shigebooo](https://ja.wordpress.org/support/users/shigebooo/)
 * (@shigebooo)
 * [14年、 12ヶ月前](https://ja.wordpress.org/support/topic/%e3%82%b3%e3%83%a1%e3%83%b3%e3%83%88%e3%81%ae%e8%a1%a8%e7%a4%ba%e3%82%b9%e3%82%af%e3%83%aa%e3%83%97%e3%83%88/#post-143189)
 * mypacecreatorさん返信ありがとうございます。
 * このコード知りませんでした･･･教えていただきありがとうございました。
 * しかし、このコードでも、分割にして新しい順にすると後詰めになってしまい、例えば
   ５件分割にして６件コメントがあると、最初の表示で１件、次のページで５件とかっこ
   悪い表示になってしまうので分割はしていませんでした。
 * 理想としては、データ的に全て取得しても良いので、最初に表示するのは新しい順で５
   件表示し、リンクボタンクリックなどで全件表示できようなイメージです。
 * 言葉では、コメントolのliを５件だけ表示するとか、６件目以降を非表示にしておくとか
   言えるのですが、自分の技量ではそんなシステムは組めないので、プラグインなどがない
   かなと質問させていただきました。
 * 今のところ、コメント要素の高さを５件分程の高さに指定して、スクロールで見れるよう
   にするしかないかと考えています･･･この場合コメントの行数によっては見栄えが悪く
   なる可能性もありますが･･･
 * 他によい方法ありましたらアドバイスよろしくお願いします。
 *  トピック投稿者 [shigebooo](https://ja.wordpress.org/support/users/shigebooo/)
 * (@shigebooo)
 * [14年、 12ヶ月前](https://ja.wordpress.org/support/topic/%e3%82%b3%e3%83%a1%e3%83%b3%e3%83%88%e3%81%ae%e8%a1%a8%e7%a4%ba%e3%82%b9%e3%82%af%e3%83%aa%e3%83%97%e3%83%88/#post-143193)
 * 「js リスト 表示件数」と検索したことろ、「newsPager.js」というスクリプトを発見
   しました。
 * このスクリプトを導入したところ、新着順に頭詰めで５件づつ表示できるようになりま
   した。
 * もちろん「次の５件」「前の５件」とナビも出ます。
 * 理想とはわずかに違いますが今のところこれでヨシとします。
 * 他によいプラグイン、スクリプトありましたらアドバイスよろしくお願いします。
 *  [kz](https://ja.wordpress.org/support/users/kz/)
 * (@kz)
 * [14年、 11ヶ月前](https://ja.wordpress.org/support/topic/%e3%82%b3%e3%83%a1%e3%83%b3%e3%83%88%e3%81%ae%e8%a1%a8%e7%a4%ba%e3%82%b9%e3%82%af%e3%83%aa%e3%83%97%e3%83%88/#post-143224)
 * スクリプト書いてみました：[WordPress で Ajax：コメント取得編](http://wpxtreme.jp/get-comments-by-ajax-in-wordpress)
 *  トピック投稿者 [shigebooo](https://ja.wordpress.org/support/users/shigebooo/)
 * (@shigebooo)
 * [14年、 11ヶ月前](https://ja.wordpress.org/support/topic/%e3%82%b3%e3%83%a1%e3%83%b3%e3%83%88%e3%81%ae%e8%a1%a8%e7%a4%ba%e3%82%b9%e3%82%af%e3%83%aa%e3%83%97%e3%83%88/#post-143230)
 * ｋｚさんいつもご指導ありがとうございます。さっそく検証してみたいと思います！の
   ですが･･･
 * 現在、コメントの表示は、comments.phpに
 *     ```
       <ol class="list_comments">
       <?php wp_list_comments('type=comment&callback=list_comments'); ?>
       </ol>
       ```
   
 * funcrions.phpに、
 *     ```
       <?php function list_comments($comment, $args, $depth) {
       	$GLOBALS['comment'] = $comment;
       ?>
       <li <?php comment_class(); ?> id="comment-<?php comment_ID(); ?>">
       <div id="comment_id_<?php comment_ID(); ?>">
       なんちゃらかんちゃら
       </div>
       <?php } ?>
       ```
   
 * として表示させているのですが、これを流用させることはできないのでしょうか？
 * それと、カテゴリーごとにON･OFFさせることは可能でしょうか？
    ひとつのカテゴリー
   だけは最初から全表示にさせておきたいのです･･･
 * この二つが叶えばまさにスーパーえびちゃん状態の満足度です！
 *  [kz](https://ja.wordpress.org/support/users/kz/)
 * (@kz)
 * [14年、 11ヶ月前](https://ja.wordpress.org/support/topic/%e3%82%b3%e3%83%a1%e3%83%b3%e3%83%88%e3%81%ae%e8%a1%a8%e7%a4%ba%e3%82%b9%e3%82%af%e3%83%aa%e3%83%97%e3%83%88/#post-143232)
 * > これを流用させることは
 *     ```
       <ol class="list_comments">
       <?php
       wp_list_comments( array(
         'type'=> 'comment',
         'callback' => 'list_comments',
         'walker' => new My_Walker_Comment,
       ) );
       ?>
       </ol>
       ```
   
 * で OK◎
 * > カテゴリーごとにON･OFFさせること
 * はしばし待たれよ！ -> 更新しました [WordPress で Ajax：コメント取得編](http://wpxtreme.jp/get-comments-by-ajax-in-wordpress)
 *  トピック投稿者 [shigebooo](https://ja.wordpress.org/support/users/shigebooo/)
 * (@shigebooo)
 * [14年、 11ヶ月前](https://ja.wordpress.org/support/topic/%e3%82%b3%e3%83%a1%e3%83%b3%e3%83%88%e3%81%ae%e8%a1%a8%e7%a4%ba%e3%82%b9%e3%82%af%e3%83%aa%e3%83%97%e3%83%88/#post-143233)
 * ｋｚさん素早い回答ありがとうございます。
 * ということは、funcrions.phpも
 *     ```
       add_action( 'init', 'my_ajax' );
       function my_ajax() {
         if ( ! isset( $_POST['get_rest_of_comments'] ) )
           return;
   
         if ( 'XMLHttpRequest' == $_SERVER['HTTP_X_REQUESTED_WITH'] ) {
           @header('Content-Type: text/html; charset=' . get_option( 'blog_charset' ) );
   
           $post_id = (int) $_POST['post_id'];
   
           $GLOBALS['post'] = get_post( $post_id );
   
           $comments = get_comments( array(
             'post_id' => $post_id,
             'status' => 'approve',
             'order' => 'ASC',
           ) );
   
           wp_list_comments( array(
             'callback' => 'list_comments',
             'walker' => new My_Walker_Comment,
             'rest' => true,
             ), $comments );
         }
   
         exit();
       }
       ```
   
 * と上記のように書き直した方がいいのですよね？
 * あと、下部のスクリプト内の
 *     ```
       function(data) {
               $('#get-rest-of-comments').remove();
               $('#comments .commentlist').append(data);
             }
       ```
   
 * `$('#comments .commentlist').append(data);`
 * をいろいろいじってはみたのですが、どうしても最初の５件表示に＋全件表示になって
   しまいます･･･他に書き換えないといけない所があるのでしょうか？
 *  [kz](https://ja.wordpress.org/support/users/kz/)
 * (@kz)
 * [14年、 11ヶ月前](https://ja.wordpress.org/support/topic/%e3%82%b3%e3%83%a1%e3%83%b3%e3%83%88%e3%81%ae%e8%a1%a8%e7%a4%ba%e3%82%b9%e3%82%af%e3%83%aa%e3%83%97%e3%83%88/#post-143234)
 * #ブログに「カテゴリーによって全件表示」を追記しました。
 * > 上記のように書き直した方がいいのですよね？
 * です◎
 * > 最初の５件表示に＋全件表示
 * 1〜5件表示していてリンクをクリックすると、
    その後ろに6件目〜最後まで表示される、
   なら正解です。
 * 1〜5件表示していてリンクをクリックすると、
    その後ろに1件目〜最後まで表示される、
   なら謎です。。
 *  トピック投稿者 [shigebooo](https://ja.wordpress.org/support/users/shigebooo/)
 * (@shigebooo)
 * [14年、 11ヶ月前](https://ja.wordpress.org/support/topic/%e3%82%b3%e3%83%a1%e3%83%b3%e3%83%88%e3%81%ae%e8%a1%a8%e7%a4%ba%e3%82%b9%e3%82%af%e3%83%aa%e3%83%97%e3%83%88/#post-143235)
 * > その後ろに1件目〜最後まで表示される
 * です･･･
 * ちなみに
 * `$('#comments .commentlist').append(data);`
 * はなんと書き換えるのが正解なのでしょうか？
 *  [kz](https://ja.wordpress.org/support/users/kz/)
 * (@kz)
 * [14年、 11ヶ月前](https://ja.wordpress.org/support/topic/%e3%82%b3%e3%83%a1%e3%83%b3%e3%83%88%e3%81%ae%e8%a1%a8%e7%a4%ba%e3%82%b9%e3%82%af%e3%83%aa%e3%83%97%e3%83%88/#post-143236)
 * そこは、Ajax で帰ってきた値を表示してるだけなので書き換えません。
 *     ```
       wp_list_comments( array(
          'callback' => 'list_comments',
          'walker' => new My_Walker_Comment,
          'rest' => true,
        ), $comments );
       ```
   
 * が1件目〜最後まで吐いているってことなので ‘rest’ パラメータが効いてないですね、
   ふむ。
 * ※追記
    My_Walker_Comment クラスで
 *     ```
       if ( 0 == $per_page )
         $per_page = get_option( 'comments_per_page' );
       ```
   
 * が抜けていました！修正しましたのでお試しください☆
 *  トピック投稿者 [shigebooo](https://ja.wordpress.org/support/users/shigebooo/)
 * (@shigebooo)
 * [14年、 11ヶ月前](https://ja.wordpress.org/support/topic/%e3%82%b3%e3%83%a1%e3%83%b3%e3%83%88%e3%81%ae%e8%a1%a8%e7%a4%ba%e3%82%b9%e3%82%af%e3%83%aa%e3%83%97%e3%83%88/#post-143237)
 * `$('#comments .commentlist').append(data);`
 * を書き換えなければ、最初の５件表示のままで、ただリンクが消えるだけです。何も表示
   してくれません。
 * `$('.list_comments .comment').append(data);`
 * など書き換えると、５件表示に＋１件目から最後まで表示されます。
 * わたしも書き方が違っているのでしょうか･･･orz
 * カテゴリー別のONOFFは機能しました。
 *  [kz](https://ja.wordpress.org/support/users/kz/)
 * (@kz)
 * [14年、 11ヶ月前](https://ja.wordpress.org/support/topic/%e3%82%b3%e3%83%a1%e3%83%b3%e3%83%88%e3%81%ae%e8%a1%a8%e7%a4%ba%e3%82%b9%e3%82%af%e3%83%aa%e3%83%97%e3%83%88/#post-143238)
 * あ、コメント周りのマークアップがオリジナルでしたら
    それに合わせて、’#comments.
   commentlist’ は書き換えます。 li タグの親の ul タグだか ol タグに付けたクラス
   名（ID名）までたどります。 ‘.list_comments .comment’ でたどれてれば OK です。
 * > ５件表示に＋１件目から最後まで表示されます。
 * は2個上のコメントに追記しましたー
 *  トピック投稿者 [shigebooo](https://ja.wordpress.org/support/users/shigebooo/)
 * (@shigebooo)
 * [14年、 11ヶ月前](https://ja.wordpress.org/support/topic/%e3%82%b3%e3%83%a1%e3%83%b3%e3%83%88%e3%81%ae%e8%a1%a8%e7%a4%ba%e3%82%b9%e3%82%af%e3%83%aa%e3%83%97%e3%83%88/#post-143239)
 * ちょっとうまく表示されません･･･
 * 頭をリセットして最新のコードで最初からやってみたいと思います。
 * 後ほどまたコメントいたします。
 * ｋｚさん何度も丁寧にありがとうございます。
 * なかなかスーパーえびちゃんになれません･･･
 *  トピック投稿者 [shigebooo](https://ja.wordpress.org/support/users/shigebooo/)
 * (@shigebooo)
 * [14年、 11ヶ月前](https://ja.wordpress.org/support/topic/%e3%82%b3%e3%83%a1%e3%83%b3%e3%83%88%e3%81%ae%e8%a1%a8%e7%a4%ba%e3%82%b9%e3%82%af%e3%83%aa%e3%83%97%e3%83%88/#post-143242)
 * ｋｚさんうまく表示できました！！
 * `$('.list_comments .comment').append(data);`
 * のところを、liまで辿らずに
 * `$('.list_comments').append(data);`
 * olのみの指定にしたところうまく表示されました。
    なぜかは私にはわかりませんが･･･
 * liまで指定しまうと入れ子のような状態になってしまってました･･･
 * 今のところ何も問題はなく、まさに理想通りのスーパーえびちゃん状態です！！
    しばらく
   検証して問題なければ「解決済み」にしたいと思います。
 * 本当にありがとうございました。
 * これからも宜しくお願いいたします。

15件の返信を表示中 - 1 - 15件目 (全15件中)

 トピック「コメントの表示スクリプト」には新たに返信することはできません。

 * フォーラム: [使い方全般](https://ja.wordpress.org/support/forum/how-to-and-troubleshooting/)
 * 15件の返信
 * 3人の参加者
 * 最後の返信者: [shigebooo](https://ja.wordpress.org/support/users/shigebooo/)
 * 最後の活動: [14年、 11ヶ月前](https://ja.wordpress.org/support/topic/%e3%82%b3%e3%83%a1%e3%83%b3%e3%83%88%e3%81%ae%e8%a1%a8%e7%a4%ba%e3%82%b9%e3%82%af%e3%83%aa%e3%83%97%e3%83%88/#post-143242)
 * 状態: 解決済

## トピック

### 人気のトピック

### 返信がないトピック

### サポート関連ではないトピック

### 解決済みのトピック

### 未解決のトピック

### すべてのトピック
