WordPressのコメント欄をカスタマイズ!入力項目を非表示にしたり、コメント欄の文言を変更する。

2021-04-20

Wordpressコメント欄カスタマイズ_eyecatch

Wordpressのコメント欄の各項目を非表示にしたり、コメント欄の文言をそれぞれ変更する方法をまとめました。

コメント時に入力してもらう項目ですが、メールアドレスやサイトの入力欄など入力項目が多いと閲覧者はコメントしづらくなります。

また「メールアドレスが公開されることはありません。」などの補足はコメントをする際に少し不安になります。

不要な入力項目や補足を削除し、文言も変更するとコメント率が上がります。

基本的にfunctions.phpで対応しました。一部CSSを使った方法もご紹介。

WordPressのコメント欄をカスタマイズする

この記事ではfucntions.phpを使ってWordPressのコメント欄をカスタマイズする方法として、以下のカスタマイズ方法を記述しています。

非表示にできる内容

  • 「名前」「メール」「サイト」の項目
  • 次回のコメントで使用するため~
  • メールアドレスが公開されることはありません

変更できる文言

  • コメント欄のタイトル、送信ボタン
  • 「名前」「メール」「サイト」の項目
  • コメント内容の上部に表示されるコメント

デザインのカスタマイズについては記載しておりません。

各項目ごとに使用するコードをそれぞれ書いています。
ページの最後にまとめたコードを記載しております。

ポイント

使用しているテーマによっては、テーマの設定からコメント欄をカスタムできるものがあるので、確認がまだの方はそちらをまず確認しましょう!

funcitons.phpって何?という方は関連記事(↓)も参考にどうぞ!

コメント欄の各入力欄を非表示にする

コメント欄の「名前」「メール」「サイト」を非表示にする方法です。

Wordpressコメント欄カスタマイズ_001

「名前」「メール」「サイト」を非表示にする

名前とメールアドレスの入力欄を削除する際には注意があります。

Wordpressコメント欄カスタマイズ_002

入力項目を消していてもエラーが出るので注意。

Wordpressの設定で名前とメールアドレスの入力を必須にしている場合、空欄のまま送信を押すとエラーが出てしまうのでまずこちらを無効にします。

Wordpressコメント欄カスタマイズ_003

ディスカッション > 他のコメント設定

管理画面からディスカッションに進みます。
「コメントの投稿者の名前とメールアドレスの入力を必須にする」のチェックを外しておきましょう。

functions.phpに記述するコード

以下のコード(どちらでもOK)をfunctions.phpに記述します。

コードその1

function commentform_remove($args) {
//名前の入力欄
$args['author'] = '';
//メールの入力欄
$args['email'] = '';
//サイトの入力欄
$args['url'] = '';
    return $args;
}
add_filter('comment_form_default_fields', 'commentform_remove');

comment_form_default_fieldsというフックを使い、各項目の配列を設定して渡すことでfunctions.phpにて各項目を操作できます。

消したい項目を空にするとその入力項目を非表示に出来ます。

コードその2

unset関数を使って各配列の要素を削除する方法でもOKです。

function commentform_remove($args) {
unset($args['author']);
unset($args['email']);
unset($args['url']);
    return $args;
}
add_filter('comment_form_default_fields', 'commentform_remove');

やっていることは同じです。一つ目のコードの方が動作が軽いかな?

cssのdisplay:noneなどを使って消すこともできますが、ページ上に存在するものを見えなくするだけなのであまり良くないと思います。

Wordpressコメント欄カスタマイズ_004

「名前」「メール」「サイト」の入力欄を削除した

項目を削除するとこんな感じにコメント本文のみの入力欄になります。

スポンサーリンク

コメント欄の必須項目とCookieの設定

  • 「*が付いている欄は必須項目です」
  • 「次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。」

を非表示にする方法です。

Wordpressコメント欄カスタマイズ_005

この部分を非表示にする

これはWordpressの設定で簡単に行うことができます。

Wordpressコメント欄カスタマイズ_006

ディスカッション > 他のコメント設定

画像を参考に赤枠のところのチェックを外すとOKです。かんたん。

Wordpressコメント欄カスタマイズ_007

コメント欄周りの文字が少なくなってスッキリ!

こんな感じになります。

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

  • 「メールアドレスが公開されることはありません。」
  • 「次のHTMLタグと属性が使えます…」

を非表示にする方法です。

Wordpressコメント欄カスタマイズ_008

この文言を削除する

functions.phpに記述するコード

function commentform_remove_text( $args ){
    //「メールアドレスが公開されることはありません」を削除
    $args['comment_notes_before'] = '';
    //「HTMLタグと属性が使えます…」を削除
    $args['comment_notes_after'] = '';
    return $args;
}
add_filter('comment_form_defaults', 'commentform_remove_text');

comment_form_defaultsというフックを使います。
入力欄を削除するのに使ったフックには_fieldsが付いていましたが違います。

comment_form_default_fields

「fields」配列のauthor、email、url、cookiesなどの要素を操作可能。

comment_form_default

全てのコメントフィールドを操作可能。
二次元配列の記述でfields要素も操作できる。

comment_notes_beforeとcomment_notes_afterという配列でコメント本文入力欄の前後にあるテキストを設定できます。

コメント欄のタイトルと送信ボタンの文字を変更する

  • 「コメントする」や「コメントを残す」などの文字を変更する方法。
  • 「コメント送信ボタン」の文字を変更する方法です。

コメント欄のタイトルや、コメントの送信ボタンを目を引くものに変更することによってコメントされる確率が上がるかもしれません。

Wordpressコメント欄カスタマイズ_009

ここを変更する

こちらもfunctions.phpを使えば簡単に変更することが出来ますので、魅力的な一文に変更して下さい・w・

functions.phpに記述するコード

function commentform_change_text( $args ){
//コメント欄のタイトル
    $args['title_reply'] = 'コメントほしいなぁ~…';
//送信ボタンのテキスト
    $args['label_submit'] = '送信するっ!!';
    return $args;
}
add_filter('comment_form_defaults', 'commentform_change_text');

title_replyに代入したテキストがコメント欄のタイトルになり、
label_submitに代入したテキストが送信ボタンの文字になります。

Wordpressコメント欄カスタマイズ_010

魅力的な一言でコメント率を上げよう!

こんな感じに変わります。

テーマによってtitle_replyでタイトル文字が変更されない事があります。

コメント欄のタイトルを非表示にする

title_replyを空欄にすることでコメント欄上部のタイトルを非表示にできます。

Wordpressコメント欄カスタマイズ_011

コメント欄のタイトルを非表示にする

functions.phpに記述するコード

function commentform_remove_title( $args ){
//コメント欄のタイトル
    $args['title_reply'] = '';
//タイトルを囲む開始タグ
    $args['title_reply_before'] = '';
//タイトルを囲む終了タグ
    $args['title_reply_after'] = '';
//送信ボタンのテキスト
    $args['label_submit'] = '送信するっ!!';
    return $args;
}
add_filter('comment_form_defaults', 'commentform_remove_title');

title_replyを空に設定するとタイトルの表示場所に変な空白が出来てしまいます。
そこでタイトルを囲む前後のHTMLタグも同時に削除します。

  • title_reply_beforeが開始タグ(<h2>~ほげほげ~)
  • title_reply_afterが終了タグ(~ほげほげ~</h2>)

という感じです。こちらも空欄にしておきましょう。

各入力欄の文字を変更する

コメント欄の「名前」「メール」「サイト」の文字を変更する方法です。

Wordpressコメント欄カスタマイズ_012

「名前」「メール」「サイト」の文字を変更する

CSSを使って変更することも可能ですが、ここではfunctions.phpにプログラムを記述し、読み込み時にテキストを置換する方法で実装します。

CSSの疑似要素を使う方法では元のテキストを隠す必要があります。
ソース上には存在してしまう為、あまり良くないと思います。

functions.phpに記述するコード

まず1項目のみ変更したい場合です。

Wordpressコメント欄カスタマイズ_013

名前からニックネームに変更した

文言を1つ変更したい場合のコード

//名前をニックネームに変更する
function commentform_change_name( $changed ) {
$changed = str_ireplace( '名前', 'ニックネーム', $changed );
    return $changed;
}
add_filter('comment_form_default_fields', 'commentform_change_name');

【上記コードの使用例】
メールを変更:名前をメールに、ニックネームを変更後の文字に変更する。
サイトを変更:名前をサイトに、ニックネームを変更後の文字に変更する。

ただ単にテキストを置換しているだけなので、適宜変更することで文字を変更することが出来ます。
comment_form_default_fieldsフックなのでコメント欄以外に影響なし。)

続いて、3項目全て変更したい場合です。

Wordpressコメント欄カスタマイズ_014

全項目の文言を変更

入力欄の文言を全て変更したい場合のコード

//名前、メール、サイトをそれぞれ文字変更する
function commentform_change_titles( $changed ) {
$target = array('名前','メール','サイト',);
$replace = array('ニックネーム','mailアドレス','あなたのサイトURL');
$changed = str_ireplace( $target, $replace, $changed );
    return $changed;
}
add_filter('comment_form_default_fields', 'commentform_change_titles');

変更前のテキストと変更後のテキストを配列にまとめています。

配列0,1,2がそれぞれの文言と対応する感じ。
これで任意の箇所の文字を1発で変更することができます。

コメント内容上部の文字を変更する

コメント本文の上側にある「コメント」という文字を変更する方法です。

Wordpressコメント欄カスタマイズ_015

この部分はCSSで編集する

「コメント」の文字についてはcomment_form_default_fieldsを使った方法ではうまく変更できませんでしたのでCSSで文言変更します。

style.cssに記述するコード

.comment-form-comment label{
    font-size: 0 !important;
}
.comment-form-comment label::before{
    font-size: 18px;
    content: "コメント内容";
}

「コメント」となっている部分にはcomment labelというクラスが当てられているので、こちらをまずfont-size:0で非表示にします。

Wordpressコメント欄カスタマイズ_016

CSSによって変更されました

あとは疑似要素を使って任意のテキストに変更します。
こんな感じに変わります。

非表示にしたい場合は、display:none;を使用するとOKです。

CSS使用時のクラス名の参考

他の項目でもクラス名を変えることで同様に文言変更ができます。

項目クラス名
コメント.comment-form-comment label
名前.comment-form-author label
メール.comment-form-email label
サイト.comment-form-url label

WordPressコメント欄カスタム用コード

コメント欄関連のコードをまとめました。

入力項目やテキストの削除と変更

function my_comment_form_custom( $args ){
//名前の入力欄を削除する
    $args['fields']['author'] = '';
//メールの入力欄を削除する
    $args['fields']['email'] = '';
//サイトの入力欄を削除する
    $args['fields']['url'] = '';
//「次回のコメントで使用するため…」を削除
    $args['fields']['cookies'] = '';
//「メールアドレスが公開されることはありません」を削除
    $args['comment_notes_before'] = '';
//「HTMLタグと属性が使えます…」を削除
    $args['comment_notes_after'] = '';
//コメント欄のタイトル
    $args['title_reply'] = 'コメントはお気軽にどうぞ!';
//コメント送信ボタン
    $args['label_submit'] = 'コメントを送信';
    return $args;
}
add_filter('comment_form_defaults', 'my_comment_form_custom');

「名前」「メール」「サイト」の文言を変更

//名前、メール、サイトをそれぞれ文字変更する
function commentform_change_titles( $changed ) {
$target = array('名前','メール','サイト',);
$replace = array('ニックネーム','mailアドレス','あなたのサイトURL');
$changed = str_ireplace( $target, $replace, $changed );
    return $changed;
}
add_filter('comment_form_default_fields', 'commentform_change_titles');

コメント本文上部の「コメント」の文言を変更

.comment-form-comment label{
    font-size: 0 !important;
}
.comment-form-comment label::before{
    font-size: 18px;
    content: "コメント内容";
}

以上の内容で大方コメント欄はカスタマイズできると思います。



まとめ

Wordpressのコメント欄をカスタマイズする方法でした。
ほとんどfunctions.phpだけで対応できます。

コメント欄はシンプルなほどコメント率が上がりますが、入力項目が少ないほどスパムコメントが増える可能性がありますので注意は必要です。

-WordPress
-

site-logo
ありがとうございました!
良かったらシェアしてネ・w・
当サイトはピンバックを受け付けます。
  • この記事を書いた人
ザキ

ザキ

X:@sologaku

プログラミングに興味があり情報系の大学を卒業。

新卒で社会人になるも数年で退職し今はフリーランスとして生きています。

少しでも誰かの役に立てれば...と思い、当サイトでIT関係のハウツーを発信しています。


ソロ学運営者:ザキの自己紹介

© 2020 sologaku