comment_excerpt()
は、コメントの内容から一部を抜粋して表示するテンプレートタグです。長いコメントを省略し、サマリーとして表示する場合に役立ちます。
機能の説明
comment_excerpt()
は、コメントの内容を指定された文字数で切り取って抜粋表示します。長いコメントを省略し、簡潔なプレビューを表示するために使用されます。このタグは、コメントが多く投稿されるサイトでリスト表示を整理するのに便利です。
シンプルなコード例
<?php comment_excerpt(); ?>
このコードは、現在のコメントの内容を自動的に20語に切り取って表示します(デフォルトの抜粋長は20単語)。
使い方の解説
comment_excerpt()
を使用すると、コメントが自動的に省略され、最後に「…」が付けられます。抜粋の長さはフィルターフック excerpt_length
を使用してカスタマイズすることもできます。
function custom_comment_excerpt_length($length) {
return 10; // 抜粋を10単語に変更
}
add_filter('excerpt_length', 'custom_comment_excerpt_length');
上記の例では、コメントの抜粋の長さがデフォルトの20単語から10単語に変更されています。comment_excerpt()
は、コメントが長い場合に「…」を付けて出力し、内容の一部を簡潔に表示するために便利です。
使用例
<ul class="comment-list">
<li <?php comment_class(); ?> id="comment-<?php comment_ID(); ?>">
<div class="comment-meta">
<span class="comment-author"><?php comment_author_link(); ?></span>
<span class="comment-date"><?php comment_date(); ?></span>
</div>
<div class="comment-excerpt"><?php comment_excerpt(); ?></div>
</li>
</ul>
このコードでは、<div class="comment-excerpt">
に comment_excerpt()
を使って、各コメントの抜粋を表示しています。
一緒に使うことが多い関連タグ
comment_text()
comment_text()
は、コメントの全文を表示するテンプレートタグです。comment_excerpt()
と異なり、内容を省略せずにそのまま表示します。
<div class="comment-full"><?php comment_text(); ?></div>
この例では、コメントの全文を表示しています。長いコメントのプレビューには comment_excerpt()
を使い、詳細表示には comment_text()
を使うことが多いです。
comment_author_link()
comment_author_link()
は、コメント投稿者の名前をリンク付きで表示するテンプレートタグです。コメント抜粋とともに投稿者の名前を表示する場合に使われます。
<span class="comment-author"><?php comment_author_link(); ?></span>
関連タグの組み合わせ例
<ul class="comment-list">
<li <?php comment_class(); ?> id="comment-<?php comment_ID(); ?>">
<div class="comment-header">
<span class="author"><?php comment_author_link(); ?></span>
<span class="date-time"><?php comment_date(); ?> at <?php comment_time(); ?></span>
</div>
<div class="comment-excerpt"><?php comment_excerpt(); ?></div>
</li>
</ul>
この例では、comment_date()
と comment_excerpt()
を組み合わせて、投稿日時とコメント抜粋を一緒に表示しています。
追加情報を取得したい場合
comment_excerpt()
の抜粋の長さを変更したり、コメントの全文へのリンクを表示する場合は、カスタム関数を利用することが可能です。
「続きを読む」のリンクを追加する例
function custom_comment_excerpt_with_link($comment) {
$excerpt = get_comment_excerpt($comment);
$link = '<a href="#comment-' . $comment->comment_ID . '">続きを読む</a>';
return $excerpt . ' ' . $link;
}
add_filter('get_comment_excerpt', 'custom_comment_excerpt_with_link');
このカスタム関数では、get_comment_excerpt()
を使って抜粋を取得し、「続きを読む」のリンクを追加しています。
get_comment_excerpt()
で取得できる情報
get_comment_excerpt()
は、コメントの抜粋を文字列として取得する関数です。comment_excerpt()
はHTMLに直接出力しますが、get_comment_excerpt()
は文字列として利用できるため、さらに加工が可能です。
<?php echo get_comment_excerpt($comment); ?>
出力できる情報
- ID: コメントのID
- excerpt: コメントの抜粋内容
想定されるトラブル
抜粋が長すぎる、または短すぎる
デフォルトの抜粋の長さが合わない場合があります。
解決方法
add_filter('excerpt_length', function() { return 15; });
excerpt_length
フィルターフックで抜粋の長さを調整してください。
コメントの全文が表示されてしまう
テーマ内で comment_text()
と混同している可能性があります。
解決方法
コメントの要約のみを表示したい場合は、comment_excerpt()
を使用してください。
Q&A
まとめ
comment_excerpt()
は、長いコメントを簡潔に表示するための便利なテンプレートタグです。
comment_text()
と組み合わせて使うことで、抜粋と全文表示を切り替えることができます。
また、get_comment_excerpt()
を使うことで、抜粋の内容をさらに加工したり、カスタムリンクを追加することも可能です。
コメント