当サイト、Codex 日本語版は今後積極的な更新は行わない予定です。後継となる新ユーザーマニュアルは、https://ja.wordpress.org/support/ にあります。
万が一、当サイトで重大な問題を発見した際などは、フォーラムWordSlack #docs チャンネルでお知らせください。</p>

「テンプレートタグ/wp list comments」の版間の差分

提供: WordPress Codex 日本語版
移動先: 案内検索
(関連: {{Lists Tags}})
(最新版のマージ)
1行目: 1行目:
{{Stub}}
 
{{CheckTrans}}
 
 
== 説明 ==
 
== 説明 ==
  
[[Version 2.7]] で導入されたこの関数は、様々なパラメータや管理画面で行う設定に基づいて、記事やページのコメントを表示します。
+
様々なパラメータや管理画面で行う設定に基づいて、記事やページのコメントを表示します。
  
 
[[Migrating Plugins and Themes to 2.7]] も参照してください。
 
[[Migrating Plugins and Themes to 2.7]] も参照してください。
  
 
== 使い方 ==
 
== 使い方 ==
 +
 +
<?php wp_list_comments( $args, $comments ); ?>
 +
 +
 +
===デフォルトでの使い方===
 +
 +
{{Parameter|$args|array|The options for the function.|オプション|
 
<pre>
 
<pre>
<?php wp_list_comments('arguments'); ?>
+
<?php $args = array(
 +
'walker'           => null,
 +
'max_depth'        => '',
 +
'style'            => 'ul',
 +
'callback'          => null,
 +
'end-callback'      => null,
 +
'type'              => 'all',
 +
'reply_text'        => 'Reply',
 +
'page'              => '',
 +
'per_page'          => '',
 +
'avatar_size'      => 32,
 +
'reverse_top_level' => null,
 +
'reverse_children'  => '',
 +
'format'            => 'html5', // or 'xhtml' if no 'HTML5' theme support
 +
'short_ping'        => false,  // @since 3.6
 +
        'echo'              => true    // boolean, default is true
 +
); ?>
 +
</pre>}}
 +
 
 +
The '<tt>max_depth</tt>', '<tt>per_page</tt>' and '<tt>reverse_top_level</tt>' parameters can be more easily controlled through the [[Settings_Discussion_SubPanel | Discussion Settings]] Administration Panel but a theme can override those settings.
 +
 
 +
{{Parameter|$comments|配列|Array obtained by [[get_comments]] query.|オプション|The default return of [[get_comments]].}}
 +
 
 +
== パラメータ ==
 +
 
 +
''拡張と説明が必要<!-- 原文自体が未完成? -->''
 +
 
 +
; avatar_size
 +
: (''整数'') アバターが表示される大きさ(ピクセル)。初期値は32。
 +
; style
 +
: (''文字列'') コメントリストの表示形式。div または ul。初期値は ul。
 +
; callback
 +
: (''文字列'') 各コメントの表示に使用するカスタム関数名。初期値は「空」。カスタム関数を指定すると、コメントに関して WordPress 内部関数をすべて省略し、その関数を呼び出して表示する。コメントの HTML レイアウトを大きく変える場合に使用する。非推奨。
 +
 
 +
<nowiki>$defaults = array('walker' => null, 'max_depth' => '', 'style' => 'ul', 'callback' => null, 'end-callback' => null, 'type' => 'all',
 +
'page' => '', 'per_page' => '', 'avatar_size' => 32, 'reverse_top_level' => null, 'reverse_children' => '');</nowiki>
 +
 
 +
== 引数 ==
 +
 
 +
 
 +
; <tt>'walker'</tt> : ( ''Walker object'' )  Provide a custom [[Class_Reference/Walker|Walker class]] object to use when rendering the comments. ''This is the primary method of customizing comment HTML.''
 +
 
 +
<pre>
 +
<?php
 +
wp_list_comments( array(
 +
    'walker' => new Walker_Comment()
 +
) );
 
</pre>
 
</pre>
 +
 +
; <tt>'max_depth'</tt> : ( ''integer'' ) How deep (in comment replies) should the comments be fetched.
 +
 +
; <tt>'style'</tt> : ( ''string'' ) Can be either 'div', 'ol', or 'ul' (the default). Note that any containing tags that must be written explicitly. For instance:
 +
 +
<pre><div class="comment list">
 +
    <?php wp_list_comments( array( 'style' => 'div' ) ); ?>
 +
</div></pre>
 +
 +
OR
 +
 +
<pre><ol class="comment list">
 +
    <?php wp_list_comments( array( 'style' => 'ol' ) ); ?>
 +
</ol></pre>
 +
 +
; <tt>'callback'</tt> : ( ''[http://www.php.net/manual/en/language.types.callable.php callback]'' ) The name of a custom function to use to open and display each comment. Using this will make your custom function get called to display each comment, bypassing all internal WordPress functionality in this respect. Use to customize comments display for extreme changes to the HTML layout. Note that your callback must include the opening <code>&lt;div&gt;</code>, <code>&lt;ol&gt;</code>, or <code>&lt;ul&gt;</code> tag (corresponding with the <tt>style</tt> parameter), but '''not''' the closing tags. WordPress will supply the closing tag automatically, or you can use <tt>end-callback</tt> to override this default. The <tt>callback</tt> is separate from the <tt>end-callback</tt> to facilitate hierarchical comments. Use with caution.
 +
 +
; <tt>'end-callback'</tt> : ( ''[http://www.php.net/manual/en/language.types.callable.php callback]'' ) The name of a custom function to use to close each comment. Using this will make your custom function get called to at the end of each comment, bypassing the WordPress default of using <code>&lt;/div&gt;</code>, <code>&lt;/ol&gt;</code>, or <code>&lt;/li&gt;</code> based on the <tt>style</tt> parameter. Use to customize the ending tags for a comment. The <tt>callback</tt> is separate from the <tt>end-callback</tt> to facilitate hierarchical comments. Use with caution.
 +
 +
; <tt>'type'</tt> : ( ''string'' ) The type of comment(s) to display. Can be <code>'all'</code>, <code>'comment'</code>, <code>'trackback'</code>, <code>'pingback'</code>, or <code>'pings'</code>. <code>'pings'</code> is both <code>'trackback'</code> and <code>'ping back'</code> together.
 +
 +
; <tt>'reply_text'</tt> : ( ''string'' ) Text to display in each comment as a reply link. (This isn't an argument of this function but it gets passed to the <code>get_comment_reply_link</code> function.)
 +
 +
; <tt>'page'</tt> : ( ''integer'' ) The current page in the pagination to display.
 +
 +
; <tt>'per_page'</tt> : ( ''integer'' ) The number of items to show for each page of comments.
 +
 +
; <tt>'avatar_size'</tt> : ( ''integer'' ) Size that the avatar should be shown as, in pixels. http://gravatar.com/ supports sizes between 1 and 512. Use 0 to hide avatars.
 +
 +
; <tt>'reverse_top_level'</tt> : ( ''boolean'' )  Setting this to <code>true</code> will display the most recent comment first then going back in order.
 +
 +
; <tt>'reverse_children'</tt> : ( ''boolean'' ) Setting this to <code>true</code> will display the children (reply level comments) with the most recent ones first, then going back in order.
 +
 +
; <tt>'format'</tt> : ( ''boolean'' ) This can be set to 'html5' or 'xhtml' - it defaults to your theme's <code>current_theme_supports( 'html5' )</code> setting.
 +
 +
; <tt>'short_ping'</tt> : ( ''boolean'' ) Whether you want to use a short ping.
 +
 +
; <tt>'echo'</tt> : ( ''boolean'' ) Whether to echo the list or just return it.
 +
 +
 +
 
== 用例 ==
 
== 用例 ==
  
===デフォルトでの使い方===
+
===デフォルトでの使用例===
  
コメントを番号付きリストで出力します。スレッド(入れ子) 形式や複数ページの分割は、[[管理パネル/ディスカッション設定]] で有効にするか無効にします。
+
コメントを番号付きリストで出力します。スレッド(入れ子) 形式や複数ページの分割は、[[管理画面/ディスカッション設定]] で有効にするか無効にします。
 
<pre>
 
<pre>
 
  &lt;ol class="commentlist"&gt;
 
  &lt;ol class="commentlist"&gt;
21行目: 113行目:
 
  &lt;/ol&gt;
 
  &lt;/ol&gt;
 
</pre>
 
</pre>
 +
 
===コメントのみを、カスタム画面で表示する===
 
===コメントのみを、カスタム画面で表示する===
  
32行目: 125行目:
 
<pre>
 
<pre>
 
function mytheme_comment($comment, $args, $depth) {
 
function mytheme_comment($comment, $args, $depth) {
  $GLOBALS['comment'] = $comment; ?>
+
$GLOBALS['comment'] = $comment;
  <li <?php comment_class(); ?> id="li-comment-<?php comment_ID() ?>">
+
extract($args, EXTR_SKIP);
    <div id="comment-<?php comment_ID(); ?>">
+
      <div class="comment-author vcard">
+
        <?php echo get_avatar($comment,$size='48',$default='<path_to_url>' ); ?>
+
  
        <?php printf(__('<cite class="fn">%s</cite> <span class="says">says:</span>'), get_comment_author_link()) ?>
+
if ( 'div' == $args['style'] ) {
      </div>
+
$tag = 'div';
      <?php if ($comment->comment_approved == '0') : ?>
+
$add_below = 'comment';
        <em><?php _e('Your comment is awaiting moderation.') ?></em>
+
} else {
        <br />
+
$tag = 'li';
      <?php endif; ?>
+
$add_below = 'div-comment';
 +
}
 +
?>
 +
<<?php echo $tag ?> <?php comment_class( empty( $args['has_children'] ) ? '' : 'parent' ) ?> id="comment-<?php comment_ID() ?>">
 +
<?php if ( 'div' != $args['style'] ) : ?>
 +
<div id="div-comment-<?php comment_ID() ?>" class="comment-body">
 +
<?php endif; ?>
 +
<div class="comment-author vcard">
 +
<?php if ( $args['avatar_size'] != 0 ) echo get_avatar( $comment, $args['avatar_size'] ); ?>
 +
<?php printf( __( '<cite class="fn">%s</cite> <span class="says">says:</span>' ), get_comment_author_link() ); ?>
 +
</div>
 +
<?php if ( $comment->comment_approved == '0' ) : ?>
 +
<em class="comment-awaiting-moderation"><?php _e( 'Your comment is awaiting moderation.' ); ?></em>
 +
<br />
 +
<?php endif; ?>
  
      <div class="comment-meta commentmetadata"><a href="<?php echo htmlspecialchars( get_comment_link( $comment->comment_ID ) ) ?>"><?php printf(__('%1$s at %2$s'), get_comment_date(),  get_comment_time()) ?></a><?php edit_comment_link(__('(Edit)'),' ','') ?></div>
+
<div class="comment-meta commentmetadata"><a href="<?php echo htmlspecialchars( get_comment_link( $comment->comment_ID ) ); ?>">
 +
<?php
 +
/* translators: 1: date, 2: time */
 +
printf( __('%1$s at %2$s'), get_comment_date(),  get_comment_time() ); ?></a><?php edit_comment_link( __( '(Edit)' ), '&nbsp;&nbsp;', '' );
 +
?>
 +
</div>
  
      <?php comment_text() ?>
+
<?php comment_text(); ?>
  
      <div class="reply">
+
<div class="reply">
        <?php comment_reply_link(array_merge( $args, array('depth' => $depth, 'max_depth' => $args['max_depth']))) ?>
+
<?php comment_reply_link( array_merge( $args, array( 'add_below' => $add_below, 'depth' => $depth, 'max_depth' => $args['max_depth'] ) ) ); ?>
      </div>
+
</div>
    </div>
+
<?php if ( 'div' != $args['style'] ) : ?>
 +
</div>
 +
<?php endif; ?>
 
<?php
 
<?php
        }
+
}
 
</pre>
 
</pre>
 
追従する <code>&lt;/li&gt;</code> が無いことに注意してください。WordPress は子要素を追加した後に、自動で追加します。
 
追従する <code>&lt;/li&gt;</code> が無いことに注意してください。WordPress は子要素を追加した後に、自動で追加します。
  
== パラメータ ==
+
===特定の固定ページ/投稿 のコメントを表示===
  
''拡張と説明が必要<!-- 原文自体が未完成? -->''
+
Outputs an ordered list of comments for a specific page or post. Things like threading or paging being enabled or disabled are controlled via the [[管理画面/ディスカッション設定]].
  
; avatar_size
+
<pre>
: (''整数'') アバターが表示される大きさ(ピクセル)。初期値は32。
+
<ol class="commentlist">
; style
+
<?php
: (''文字列'') コメントリストの表示形式。div または ul。初期値は ul。
+
//Gather comments for a specific page/post
; callback
+
$comments = get_comments(array(
: (''文字列'') 各コメントの表示に使用するカスタム関数名。初期値は「空」。カスタム関数を指定すると、コメントに関して WordPress 内部関数をすべて省略し、その関数を呼び出して表示する。コメントの HTML レイアウトを大きく変える場合に使用する。非推奨。
+
'post_id' => XXX,
 +
'status' => 'approve' //Change this to the type of comments to be displayed
 +
));
 +
 
 +
//Display the list of comments
 +
wp_list_comments(array(
 +
'per_page' => 10, //Allow comment pagination
 +
'reverse_top_level' => false //Show the latest comments at the top of the list
 +
), $comments);
 +
?>
 +
</ol>
 +
</pre>
 +
 
 +
== 更新履歴 ==
 +
 
 +
新規導入: 2.7.0
 +
 
 +
== ソースファイル ==
 +
 
 +
<tt>wp_list_comments()</tt> は {{Trac|wp-includes/comment-template.php|tags/{{CurrentVersion}}|1880}}にあります。
  
<nowiki>$defaults = array('walker' => null, 'max_depth' => '', 'style' => 'ul', 'callback' => null, 'end-callback' => null, 'type' => 'all',
 
'page' => '', 'per_page' => '', 'avatar_size' => 32, 'reverse_top_level' => null, 'reverse_children' => '');</nowiki>
 
  
 
== 関連 ==
 
== 関連 ==
76行目: 204行目:
  
 
{{Tag Comments Tags}}
 
{{Tag Comments Tags}}
 +
 +
{{NeedTrans|一部}}
  
 
{{PHP Function Tag Footer}}
 
{{PHP Function Tag Footer}}
{{原文|Template Tags/wp_list_comments|65865}}<!-- 18:44, January 7, 2009 Jeremyclarke 版 -->
+
{{原文|Template Tags/wp_list_comments|150828}}<!-- 12:04, 15 April 2015‎ Jdgrimes 版 -->
  
 
{{DEFAULTSORT:Wp_list_comments}}
 
{{DEFAULTSORT:Wp_list_comments}}

2015年7月12日 (日) 07:16時点における版

説明

様々なパラメータや管理画面で行う設定に基づいて、記事やページのコメントを表示します。

Migrating Plugins and Themes to 2.7 も参照してください。

使い方

<?php wp_list_comments( $args, $comments ); ?>


デフォルトでの使い方

$args
array) (オプション) The options for the function.
初期値:
<?php $args = array(
	'walker'            => null,
	'max_depth'         => '',
	'style'             => 'ul',
	'callback'          => null,
	'end-callback'      => null,
	'type'              => 'all',
	'reply_text'        => 'Reply',
	'page'              => '',
	'per_page'          => '',
	'avatar_size'       => 32,
	'reverse_top_level' => null,
	'reverse_children'  => '',
	'format'            => 'html5', // or 'xhtml' if no 'HTML5' theme support
	'short_ping'        => false,   // @since 3.6
        'echo'              => true     // boolean, default is true
); ?>

The 'max_depth', 'per_page' and 'reverse_top_level' parameters can be more easily controlled through the Discussion Settings Administration Panel but a theme can override those settings.

$comments
配列) (オプション) Array obtained by get_comments query.
初期値: The default return of get_comments.

パラメータ

拡張と説明が必要

avatar_size
(整数) アバターが表示される大きさ(ピクセル)。初期値は32。
style
(文字列) コメントリストの表示形式。div または ul。初期値は ul。
callback
(文字列) 各コメントの表示に使用するカスタム関数名。初期値は「空」。カスタム関数を指定すると、コメントに関して WordPress 内部関数をすべて省略し、その関数を呼び出して表示する。コメントの HTML レイアウトを大きく変える場合に使用する。非推奨。
$defaults = array('walker' => null, 'max_depth' => '', 'style' => 'ul', 'callback' => null, 'end-callback' => null, 'type' => 'all',
	'page' => '', 'per_page' => '', 'avatar_size' => 32, 'reverse_top_level' => null, 'reverse_children' => '');

引数

'walker' 
( Walker object ) Provide a custom Walker class object to use when rendering the comments. This is the primary method of customizing comment HTML.
<?php
wp_list_comments( array(
    'walker' => new Walker_Comment()
) );
'max_depth' 
( integer ) How deep (in comment replies) should the comments be fetched.
'style' 
( string ) Can be either 'div', 'ol', or 'ul' (the default). Note that any containing tags that must be written explicitly. For instance:
<div class="comment list">
    <?php wp_list_comments( array( 'style' => 'div' ) ); ?>
</div>

OR

<ol class="comment list">
    <?php wp_list_comments( array( 'style' => 'ol' ) ); ?>
</ol>
'callback' 
( callback ) The name of a custom function to use to open and display each comment. Using this will make your custom function get called to display each comment, bypassing all internal WordPress functionality in this respect. Use to customize comments display for extreme changes to the HTML layout. Note that your callback must include the opening <div>, <ol>, or <ul> tag (corresponding with the style parameter), but not the closing tags. WordPress will supply the closing tag automatically, or you can use end-callback to override this default. The callback is separate from the end-callback to facilitate hierarchical comments. Use with caution.
'end-callback' 
( callback ) The name of a custom function to use to close each comment. Using this will make your custom function get called to at the end of each comment, bypassing the WordPress default of using </div>, </ol>, or </li> based on the style parameter. Use to customize the ending tags for a comment. The callback is separate from the end-callback to facilitate hierarchical comments. Use with caution.
'type' 
( string ) The type of comment(s) to display. Can be 'all', 'comment', 'trackback', 'pingback', or 'pings'. 'pings' is both 'trackback' and 'ping back' together.
'reply_text' 
( string ) Text to display in each comment as a reply link. (This isn't an argument of this function but it gets passed to the get_comment_reply_link function.)
'page' 
( integer ) The current page in the pagination to display.
'per_page' 
( integer ) The number of items to show for each page of comments.
'avatar_size' 
( integer ) Size that the avatar should be shown as, in pixels. http://gravatar.com/ supports sizes between 1 and 512. Use 0 to hide avatars.
'reverse_top_level' 
( boolean ) Setting this to true will display the most recent comment first then going back in order.
'reverse_children' 
( boolean ) Setting this to true will display the children (reply level comments) with the most recent ones first, then going back in order.
'format' 
( boolean ) This can be set to 'html5' or 'xhtml' - it defaults to your theme's current_theme_supports( 'html5' ) setting.
'short_ping' 
( boolean ) Whether you want to use a short ping.
'echo' 
( boolean ) Whether to echo the list or just return it.


用例

デフォルトでの使用例

コメントを番号付きリストで出力します。スレッド(入れ子) 形式や複数ページの分割は、管理画面/ディスカッション設定 で有効にするか無効にします。

 <ol class="commentlist">
 <?php wp_list_comments(); ?>
 </ol>

コメントのみを、カスタム画面で表示する

コメントのみ(ピンバックやトラックバックを含まない)を表示し、コールバック関数を用いて見た目を整えます。

<ul class="commentlist">
<?php wp_list_comments('type=comment&callback=mytheme_comment'); ?>
</ul>

利用しているテーマの functions.php file でコールバック関数を定義しておく必要があります。コールバック関数の例を以下に示します。

function mytheme_comment($comment, $args, $depth) {
	$GLOBALS['comment'] = $comment;
	extract($args, EXTR_SKIP);

	if ( 'div' == $args['style'] ) {
		$tag = 'div';
		$add_below = 'comment';
	} else {
		$tag = 'li';
		$add_below = 'div-comment';
	}
?>
	<<?php echo $tag ?> <?php comment_class( empty( $args['has_children'] ) ? '' : 'parent' ) ?> id="comment-<?php comment_ID() ?>">
	<?php if ( 'div' != $args['style'] ) : ?>
	<div id="div-comment-<?php comment_ID() ?>" class="comment-body">
	<?php endif; ?>
	<div class="comment-author vcard">
	<?php if ( $args['avatar_size'] != 0 ) echo get_avatar( $comment, $args['avatar_size'] ); ?>
	<?php printf( __( '<cite class="fn">%s</cite> <span class="says">says:</span>' ), get_comment_author_link() ); ?>
	</div>
	<?php if ( $comment->comment_approved == '0' ) : ?>
		<em class="comment-awaiting-moderation"><?php _e( 'Your comment is awaiting moderation.' ); ?></em>
		<br />
	<?php endif; ?>

	<div class="comment-meta commentmetadata"><a href="<?php echo htmlspecialchars( get_comment_link( $comment->comment_ID ) ); ?>">
		<?php
			/* translators: 1: date, 2: time */
			printf( __('%1$s at %2$s'), get_comment_date(),  get_comment_time() ); ?></a><?php edit_comment_link( __( '(Edit)' ), '  ', '' );
		?>
	</div>

	<?php comment_text(); ?>

	<div class="reply">
	<?php comment_reply_link( array_merge( $args, array( 'add_below' => $add_below, 'depth' => $depth, 'max_depth' => $args['max_depth'] ) ) ); ?>
	</div>
	<?php if ( 'div' != $args['style'] ) : ?>
	</div>
	<?php endif; ?>
<?php
}

追従する </li> が無いことに注意してください。WordPress は子要素を追加した後に、自動で追加します。

特定の固定ページ/投稿 のコメントを表示

Outputs an ordered list of comments for a specific page or post. Things like threading or paging being enabled or disabled are controlled via the 管理画面/ディスカッション設定.

<ol class="commentlist">
	<?php
		//Gather comments for a specific page/post 
		$comments = get_comments(array(
			'post_id' => XXX,
			'status' => 'approve' //Change this to the type of comments to be displayed
		));

		//Display the list of comments
		wp_list_comments(array(
			'per_page' => 10, //Allow comment pagination
			'reverse_top_level' => false //Show the latest comments at the top of the list
		), $comments);
	?>
</ol>

更新履歴

新規導入: 2.7.0

ソースファイル

wp_list_comments()構文エラー: "tags" は認識できません/src/wp-includes/comment-template.php wp-includes/comment-template.phpにあります。


関連

リスト・ドロップダウン関数: wp_list_authors(), wp_list_categories(), wp_list_pages(), wp_list_bookmarks(), wp_list_comments(), wp_get_archives(), wp_page_menu(), wp_dropdown_pages(), wp_dropdown_categories(), wp_dropdown_users()


コメント関数: cancel_comment_reply_link(), comment_author(), comment_author_email(), comment_author_email_link(), comment_author_IP(), comment_author_link(), comment_author_rss(), comment_author_url(), comment_author_url_link(), comment_class(), comment_date(), comment_excerpt(), comment_form_title(), comment_form(), comment_ID(), comment_id_fields() / en, comment_reply_link(), comment_text(), comment_text_rss(), comment_time(), comment_type(), comments_link, comments_number(), comments_open(), comments_popup_link(), comments_popup_script(), comments_rss_link(), get_avatar(), next_comments_link(), paginate_comments_links(), permalink_comments_rss(), previous_comments_link(), wp_list_comments()


このページ「テンプレートタグ/wp list comments」は一部未翻訳です。和訳や日本語情報を加筆してくださる協力者を求めています


テンプレートタグへの PHP 関数型パラメータの渡し方関数リファレンステンプレートタグ目次もご覧ください。

最新英語版: WordPress Codex » Template Tags/wp_list_comments最新版との差分