wp_list_comments

説明

string wp_list_comments( [ array $args = array() [ , array $comments = null ] ] )
コメントリストを表示する(またはそのHTMLテキストを取得する)。

パラメータ

  • $args
    連想配列でパラメータを指定(省略時はarray())。
    キー名意味省略時の値
    'walker'HTMLを生成するWalkerオブジェクトnull
    'max_depth'深度''
    'style'スタイルとして'ul'、'ol'(または'div')'ul'
    'callback'コールバック関数null
    'end-callback'終了時のコールバック関数null
    'type'有効なコメントタイプとして'all'、'comment'、'pingback'、'trackback'、'pings'のいずれか'all'
    'page'ページID''
    'per_page'1ページのコメント件数''
    'avatar_size'アバターサイズ32
    'reverse_top_level'トップレベルの表示順として'desc'、'asc'のいずれかnull
    'reverse_children'子コメントを逆転する場合はtrue''
    'formatフォーマットとして'html5'、'xhtml'のいずれかテーマがHTML5をサポートしている場合は'html5'
    'short_ping'ショートpingfalse
    'echo'表示する場合はtrueを指定true
  • $comments
    コメントオブジェクトの配列を指定(省略時はnull)。

返り値

パラメータ$args['echo']がfalseの場合はコメントリストのHTMLテキストを返す。パラメータ$args['echo']がfalse(コメントリストを表示)の場合、明示的には何も返さない(nullを返す)。

注意

コメントリストの生成は、デフォルトではWalker_Commentオブジェクトで行うが、パラメータ$args['walker']に任意のWalkerオブジェクトを指定できる。

この関数内でメインクエリー(WP_Query)オブジェクトである$wp_query->max_num_comment_pagesを更新している。


使用例

  • 現在の投稿のコメントリストを表示する。
    <?php wp_list_comments(); ?>
  • 現在の投稿のコメントリストを取得する。
    <?php $list = wp_list_comments( array( 'echo'=>false ) ); ?>
  • パラメータ$commentsをol要素で表示する。
    <?php wp_list_comments( array( 'style'=>'ol' ), $comments ); ?>

フィルター

[4.0.0]パラメータ$argsの初期設定後、'wp_list_comments_args'フィルターを呼び出す。パラメータ$rには$argsに各要素のデフォルト値を設定した連想配列となる。
$r = apply_filters( 'wp_list_comments_args', $r );

アクション

実行するアクションはありません。

ソースファイル

/wp-includes/comment-template.php

最終更新 : 2014年09月18日 13:00



お勧め

投稿ページでユニークなテンプレートを選択しよう(2018年5月27日 更新)

4.7の変更点に「投稿タイプテンプレート」がある。これは従来固定ページ('page')向けに任意のテンプレートを適用できる機能が拡張されたもので、投稿ページ('post')はもちろんカスタム投稿タイプのページにも適用可能になっている。

ブロックエディターの色設定を変えてみる(2019年12月11日 更新)

バージョン5.3で機能強化されたブロックエディター。対応を考えて新テーマ「Twenty Twenty」のソースコードを眺めていく。

5.3の新機能:日付とタイムゾーン(2019年10月2日 更新)

WordPress 5.3 Beta 1」に記載されていた「Time/Date component fixes」という見出し。開発者向として新しい関数の追加や多くのバグが修正されたとなっており、チェックせざるを得ない。

ショートコードを含んだページを表示する前に何か処理する(2014年5月28日 更新)

固定ページまたは投稿ページに独自のフォームを埋め込む。入力→登録の2段階のフォームなら著名なプラグイン「Contact Form 7」を利用すればいいのだが、クライアントの依頼は入力→確認→登録の3段階で組み込む要素が特化していたので、独自の実装方法を考えることになった。

Emojin:プラグイン作ってみました(2015年3月21日 更新)

ちょっと前のTLでiOSの絵文字を含んだ投稿を保存すると、絵文字以降の文章がすべて消えた状態で保存されるといったツイートを見かけた。少し検索してみると、MySQLのデータベースの文字セットが「utf8」の場合、iOSの絵文字のような4バイトの文字を正常に保存できず、それ以降の文章も保存されないというものらしい。対処方法としてデータベースの文字セットを「utf8mb4」に変更するのが有効らしいのだが、他に回避策がないか考えてみた。