WordPressのコメントフォームには、名前やメールアドレス等の情報を入力する項目があります。しかし、これらの項目が一部不必要な場合もあります。

当記事では、コメント欄の各項目を非表示・変更する方法について解説します。フォームを自分好みにカスタマイズしたい方は、参考にしてください。

フォームを非表示にする

デフォルトのコメントフォームは下記になります。❺以外の項目は、WordPressのフィルターフックを利用して編集しますので、下記にご紹介するコードを「functions.php」に記入してください。(必ずバックアップをとってから編集してください。)

デフォルトのコメントフォーム

  1. 「メールアドレスが公開されることはありません。」を非表示にする
  2. 「名前」を非表示にする
  3. 「メールアドレス」を非表示にする
  4. 「サイト」を非表示にする
  5. 「次回のコメントで…サイトを保存する。」を非表示にする
  6. 送信ボタンのラベルを変更する

名前やメールアドレスを非表示にする場合は、「ディスカッション設定」>「コメントの投稿者の名前とメールアドレスの入力を必須にする」のチェックを外してください。コメントできなくなります。

サイト全体でコメント機能を完全に無効化したい場合も、「ディスカッション設定」で設定可能です。ただし、既存の記事は各記事ごとにコメントを無効化する必要があります。既存記事も含めて一括で無効化できるプラグインもご紹介していますので、詳しくは下記記事を参考にご覧ください。

「メールアドレスが公開されることはありません。」を非表示にする

コメントフォーム上部のテキストは下記で非表示にできますが、「”」内に任意のテキストを入力することで文章を変更することも可能です。

function hide_comment_notes_before($defaults){
  $defaults['comment_notes_before'] = '';
  return $defaults;
}
add_filter( 'comment_form_defaults', 'hide_comment_notes_before');

名前を非表示にする

function hide_comment_fields_author($defaults){
  $defaults['fields']['author'] = '';
  return $defaults;
}
add_filter( 'comment_form_defaults', 'hide_comment_fields_author');

メールアドレスを非表示にする

function hide_comment_fields_email($defaults){
  $defaults['fields']['email'] = '';
  return $defaults;
}
add_filter( 'comment_form_defaults', 'hide_comment_fields_email');

サイトを非表示にする

function hide_comment_fields_url($defaults){
  $defaults['fields']['url'] = '';
  return $defaults;
}
add_filter( 'comment_form_defaults', 'hide_comment_fields_url');

「次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。」を非表示にする

こちらのチェックボックスは、管理画面から項目を非表示にできます。「ディスカッション設定」を開き、「コメント投稿者が Cookie を保存できるようにする、Cookie オプトイン用チェックボックスを表示します」のチェックを外してください。

送信ボタンのラベルを変更する

下記は、送信ボタンのラベルを変更する記述ですので、任意の文言をご記入ください。(空欄にするとボタンが表示されなくなりますので、ご注意ください。)

function change_comment_label_submit($defaults){
  $defaults['label_submit'] = '送信';
  return $defaults;
}
add_filter( 'comment_form_defaults', 'change_comment_label_submit');

全ての処理をまとめる

今回ご紹介した各項目を非表示にする処理は、1つの関数にまとめることができます。複数項目を非表示にする場合は、下記をコピー&ペーストして、必要な記述のみ残してください。

function comment_fields_control($defaults){
  $defaults['comment_notes_before'] = ''; // コメント上部の文章(メールアドレスが公開されることはありません。)
  $defaults['fields']['author'] = ''; // 名前
  $defaults['fields']['email'] = ''; // メールアドレス
  $defaults['fields']['url'] = ''; // ウェブサイト
  $defaults['label_submit'] = '送信'; // 送信ボタンのラベル
  return $defaults;
}
add_filter( 'comment_form_defaults', 'comment_fields_control');

まとめ

コメントフォームをカスタマイズする方法についてご紹介しました。これらは「functions.php」を編集する必要があるため、必ずカスタマイズ前にバックアップをとるようにしましょう。

また、直接テーマファイルを編集すると、テーマのアップデート時に編集箇所が消えてしまいます。子テーマを作成するか、下記のプラグインを利用すると、アップデート後もカスタマイズ箇所を引き継げます。