概要
comments_numberフィルタは、WordPressの投稿ページのコメント数を表示する際に使用されるフィルタです。このフィルタを利用することで、デフォルトのコメント数の表示形式を変更することができます。具体的には、コメント数が特定の条件を満たす場合にカスタマイズしたテキストを表示したり、表示のフォーマットを変更したりするのに便利です。このフィルタは以下のような機能を実装させることがよくあります。
- コメント数の前にカスタムテキストを追加する
- 特定のユーザーグループに対する表示形式を変更する
- コメントが0の時に特別なメッセージを表示する
- コメント数の小数点以下を切り捨てる
- 投稿が公開された日時に基づいて表示形式を変更する
- コメント数をアイコンで視覚的に表示する
- カスタム投稿タイプのコメント数も対応する
- SNSシェアボタンに連動してコメント数を表示する
構文
apply_filters( 'comments_number', $output, $post_id );
パラメータ
$output(文字列): フィルタリングされるコメント数の表示内容。$post_id(整数): コメント数を取得する投稿のID。
戻り値
- フィルタリングされたコメント数の表示内容。
関連する関数
このフィルタを使用可能なバージョン
comments_numberフィルタは、WordPressのバージョン2.0以降で利用可能です。
コアファイルのパス
wp-includes/default-filters.php
サンプルコード
サンプル1: コメント数の前にカスタムテキストを追加
このサンプルは、コメント数の前に特定のカスタムテキストを追加します。
add_filter('comments_number', function($output, $post_id) {
return 'コメント数: ' . $output;
}, 10, 2);
サンプル2: コメントが0の時に特別なメッセージを表示
このサンプルでは、コメントが0の時に「コメントはまだありません」と表示します。
add_filter('comments_number', function($output, $post_id) {
if ($output == '0') {
return 'コメントはまだありません';
}
return $output;
}, 10, 2);
サンプル3: コメント数をアイコンで視覚的に表示
このサンプルは、コメント数をアイコンとともに表示します。
add_filter('comments_number', function($output, $post_id) {
return $output . ' <span class="icon-comment"></span>';
}, 10, 2);
サンプル4: 特定のユーザーグループに対する表示形式を変更
このサンプルでは、特定のユーザーグループの投稿に対して表示形式を変更します。
add_filter('comments_number', function($output, $post_id) {
if (user_can(get_post($post_id)->post_author, 'editor')) {
return 'エディターの投稿: ' . $output;
}
return $output;
}, 10, 2);
サンプル5: コメント数の小数点以下を切り捨てる
このサンプルは、コメント数を切り捨てて整数として表示します。
add_filter('comments_number', function($output, $post_id) {
return floor($output);
}, 10, 2);
この関数のアクションでの使用可能性
| アクション | 使用可能性 |
|---|---|
| mu_plugin_loaded | 〇 |
| registered_post_type | |
| plugins_loaded | 〇 |
| wp_roles_init | |
| setup_theme | |
| after_setup_theme | |
| set_current_user | |
| init | 〇 |
| register_sidebar | |
| wp_loaded | |
| send_headers | |
| parse_query | |
| pre_get_posts | |
| wp | 〇 |
| template_redirect | |
| get_header | |
| wp_head |
非推奨または削除されたバージョン
特定のバージョンで非推奨または削除された情報はありません。