コメントフォームをカスタマイズする – comment.phpを使う方法

そもそもコメント欄を表示させるには?

投稿ページなどでコメントを受け付けたい場合、まずその処理内容をcomment.phpというファイルに記述します。テーマ内にcomment.phpがなければ新たに作るか、作らなければwp-includes/comment.phpが自動的に読み込まれます。カスタムをする場合はテーマフォルダ内にcomment.phpを作った方がいいでしょう。フルカスタムしなくても、カスタムしなかった部分はwp-includes/comment.phpが補ってくれます。

デフォルトのコメント欄を表示するだけなら、コメント欄をつけたいページ(single.phpなど)にcomment_form();と記述するだけで完了です。※これだけならテーマ内にcomment.phpを作らなくてもコメント欄を設けられます。ただ、今回は少しカスタムをしたいのでテーマ内に新たにcomment.phpを作って進めます。

コメント欄をカスタムするには?

関数comment_form()には2つ引数を渡せます。

この$argsにデフォルトで代入されている値は以下の通りです。

これを直接書き換えるのではなく新たに$argsを作って引数としてcomment_form()に渡して上書きすることでカスタマイズします。

入力項目を変更する

$argsの配列で最初のプロパティとして定義されている’fields’ => apply_filters( ‘comment_form_default_fields’, $fields ),の2つ目の引数$fieldsがデフォルトで入力項目となっている「名前、メールアドレス、ウェブサイト」を指定している部分となります。デフォルトで代入されている値は以下のようになっています。

入力項目「ウェブサイト」を削除する

「ウェブサイト」という項目を削除したい場合には以下のように値を空にします。※変数$fieldsを書き換えるのではなく、$argsの’fields’プロパティを上書きする形で行ないます。$fieldsは入力された値をエンコード(esc_attr)したり、入力必須項目に*印をつけるといったコア部分のメソッドが実行されています。

comment_form()に引数として渡す変数をcomment.phpに記述します。今回は$comment_argsとして進めます。

‘author’と’email’の値は元のものをコピペしました。

それ以外の部分もお好みで変えていきます。’fields’の配列を閉じたあとに続けてプロパティと値を記述していきます。$comment_args変数を閉じたあとにcomment_form()を実行します。引数には定義した$comment_argsをわたします。

最後にcomment.phpの先頭に$comments_args内のfieldsプロパティ内で使用する変数に値を代入しておきます。

「名前とメールアドレスは必須」に設定しているかどうかは管理画面の「設定」→「ディスカッション」で指定します。

管理画面ディスカッション項目

そしてコメント欄を表示したいファイル(single.phpなど)でcomment.phpを呼び出します。このときcomment_form()関数に代えてcomments_template()関数を実行します。

テーマにコメント欄&コメントフォームを設置する – Yuru Warp

WordPress:コメントフォームをカスタマイズする方法 – NxWorld

コメントをする

メールアドレスがサイト上で公開されることはありません。

コメント

コメントはありません。