「投稿にコメント欄を出したいけれど見た目を整えたい」「コメントの見出しや承認待ちメッセージを日本語に合わせて変えたい」「コメント欄の前後に注意書きやSNSシェアボタンを差し込みたい」——ブログやメディアサイトで読者とのやり取りを生むコメント機能は、設定や文言を少し整えるだけで使い勝手が大きく変わります。
Apuraテーマはコメント欄をカスタマイザーでの表示切り替えと、豊富なフィルター・アクションフックによる拡張の両面からカスタマイズできるように設計されています。
この記事では、管理画面でできる基本設定から、functions.phpに書ける開発者向けのフック活用までを順番に解説します。
コメント欄が表示される条件と基本設定
Apuraのコメント欄は、いくつかの条件がそろったときだけ表示されます。まずはWordPress本体とテーマ側、それぞれの設定を押さえておきましょう。コメント欄が表示されるのは、次のすべてを満たす場合です。
- 投稿タイプがコメントをサポートしている(投稿・固定ページなど)
- 表示中のページが個別ページ(
is_singular()がtrue)である - その投稿でコメントが許可されている、もしくは既存のコメントが1件以上ある
WordPress全体のコメント可否は「設定」→「ディスカッション」で、個別投稿ごとの可否は投稿編集画面の「ディスカッション」パネル(表示されていない場合は画面右上の「オプション」→「詳細設定」から有効化)で切り替えられます。
投稿本文の下に表示される要素の並び替え
Apuraでは、投稿本文の下に表示される要素(関連コンテンツ、前後の記事ナビゲーション、コメントなど)の並び順をカスタマイザーで調整できます。「外観 → カスタマイズ」→「投稿(Single Post)」を開き、本文下の要素リストでドラッグ&ドロップして並び替えてください。コメント要素を一覧から外せば、コメント欄そのものを非表示にすることもできます。投稿タイプ単位で細かく出し分けたい場合は、次章以降のフックを使うのが確実です。
見出し・コメント一覧の見た目をフィルターで整える
ここからは開発者向けのカスタマイズです。Apuraはコメント周りに複数のフィルターフックを用意しており、コードを数行書くだけで文言や表示オプションを安全に変更できます。まずは見た目に直結する2つのフィルターから見ていきましょう。
| フィルター名 | 対象 | 渡される値 |
|---|---|---|
| apura_comments_title | コメント一覧の見出し(h3) | 見出しのHTML、見出しテキスト |
| apura_comment_list_args | wp_list_comments() の引数 | 引数の連想配列 |
コメント見出しを件数付きの日本語に変える
標準のコメント見出しは「Comments」というシンプルなテキストです。apura_comments_titleフィルターを使うと、これを「3件のコメント」のように件数付きの日本語に差し替えられます。第1引数に見出しのHTML、第2引数に見出しテキストが渡されるので、必要に応じて使い分けてください。
ポイントはnumber_format_i18n()とesc_html__()の併用です。件数は数値とはいえ、出力前にエスケープしておくのがWordPressのベストプラクティスです。add_filter()の第4引数に2を指定するのを忘れると第2引数$textが受け取れないので注意しましょう。
アバターサイズや返信リンクの表示を変える
コメント一覧は内部的にwp_list_comments()で出力されており、その引数をapura_comment_list_argsフィルターで丸ごと調整できます。既定ではアバターサイズ48px・ol形式で出力されます。たとえばアバターを少し大きくしたい場合は次のように書きます。
wp_list_comments()が受け付ける引数(avatar_size、reply_text、max_depth、独自のcallbackなど)はすべてこのフィルターから指定できます。利用可能な引数の一覧はWordPress公式リファレンスのwp_list_comments()のページで確認できます。
ナビゲーションと各種メッセージの文言を変える
コメントが多い投稿ではページ送り(前後のコメントへのナビゲーション)が表示されます。また、コメントを締め切った投稿や、承認待ちのコメントには専用のメッセージが出ます。これらの文言や設定も、それぞれ専用のフィルターで変更できます。
| フィルター名 | 用途 | 既定値 |
|---|---|---|
| apura_comment_nav_args | コメントのページ送りの引数 | 前後リンクのラベル等 |
| apura_closed_comment_text | コメント締め切り時のメッセージ | Comments are closed |
| apura_comment_moderation_note | 承認待ちコメントの注記 | Your comment is awaiting moderation. |
締め切りメッセージと承認待ち注記を日本語にする
英語のままになりがちな2つのメッセージを、まとめて日本語化してみましょう。どちらも文字列をそのまま返すシンプルなフィルターです。
コメントのページ送りラベルを変更する
apura_comment_nav_argsはthe_comments_navigation()に渡す引数を調整するフィルターです。前後リンクのラベルを矢印付きにするなど、ナビゲーションの見た目を整えられます。
アクションフックでコメント欄の前後に要素を追加する
文言や引数の調整だけでなく、コメント欄の前後に独自のHTMLを差し込みたい場面もあります。Apuraはコメント領域に2つのアクションフックを用意しています。
| アクション名 | 実行タイミング |
|---|---|
| apura_comments | コメント一覧・ナビゲーションが描画される領域 |
| apura_after_comments | コメント一覧の後、投稿フォームが出力される領域 |
たとえば「コメントを書く前に注意事項を読んでほしい」というケースでは、投稿フォームの直前(apura_after_commentsの早い優先度)に案内文を差し込めます。フォーム本体はこのフックの優先度10で出力されるため、それより小さい優先度を指定すると案内文がフォームの上に表示されます。
投稿フォーム自体を調整したいとき
コメント投稿フォームはWordPress標準のcomment_form()で出力されており、Apuraはformat => 'html5'を指定しています。フォームの各フィールドやラベルを変更したい場合は、WordPress本体のフィルターであるcomment_form_defaultsやcomment_form_fieldsを利用します。これらはテーマ非依存で、どんなテーマでも同じように使えます。
コメント関連フック早見表
最後に、この記事で紹介したApura独自のフックをまとめておきます。functions.phpでのカスタマイズの起点としてご活用ください。
| フック名 | 種類 | 用途 |
|---|---|---|
| apura_comments_title | フィルター | コメント一覧の見出しを変更 |
| apura_comment_list_args | フィルター | wp_list_comments()の引数を調整 |
| apura_comment_nav_args | フィルター | コメントのページ送りラベルを変更 |
| apura_closed_comment_text | フィルター | コメント締め切り時のメッセージを変更 |
| apura_comment_moderation_note | フィルター | 承認待ちコメントの注記を変更 |
| apura_comments | アクション | コメント一覧領域に要素を追加 |
| apura_after_comments | アクション | フォーム前後に要素を追加 |
コメント機能は、表示の有無こそカスタマイザーで手軽に切り替えられますが、文言や見た目を細かく整えたいときはフックが頼りになります。
まずはapura_comments_titleでの見出し変更や、締め切り・承認待ちメッセージの日本語化といった小さなカスタマイズから試してみてください!