WordPressコメントでウェブサイトやメールアドレスの入力欄を消す

公開日: 2014年03月05日
最終更新日: 2014年07月08日

匿名希望

Wordpressのコメントフォームで、メールアドレスとウェブサイトの入力欄を消す(非表示にする)方法です。function.phpで消す方法、CSSで非表示にする方法、comments.phpで消す方法の3種類をご紹介します。

もくじ

はじめに

ブログのコメントについて、どう思いますか?

気軽にコメントをもらいたい!

コメントをもらってモチベーションを維持したい!

などなど色々な理由があるかと思いますが、基本的にはコメントをいただけるに越したことはありません。単純に嬉しいですし、勉強になることも多いですよね。

一応、コメントの内容にもよりますがコンテンツが増えるわけなので、SEO的にも効果があるのではないかと(私は)思っております。

そこで、出来る限りコメントのハードルを下げたいと思う方もいると思います。
というか私はそう思います。

WordPressのコメント欄はデフォルトだと、名前とメールアドレスが必須入力、ウェブサイトが任意入力で設置されていますね。

名前(必須)
メールアドレス(非公開)(必須)
ウェブサイト

私がまだHTMLのHの字も知らないころ、とあるブログの記事にコメントを書きたいと思ったものの、なぜメールアドレスを記入する必要があるのかと疑問に思うとともに、何だか怖くてコメントを書き込むのを止めた経験があります。

名前は苗字でもいいしってか別にニックネームでもいいし、ウェブサイトは任意だから入力しなくていいけど、メールアドレスは適当に書くわけにはいかないじゃないですか。でも必須なわけじゃないですか。

別に今ではメールアドレスなんてガンガン入力してコメントしてますけど、ブラウザって何?って感じでIEしか使っていなかったころの初々しかった私は、メールアドレスという1つの個人情報を一方的に知られてしまうのが嫌で嫌で仕方なかったんですね。

そういった方の抵抗をなくすため、またコメントいただく方の手間をなくすためにも、私は運営しているブログのほとんどで、メールアドレスの入力欄を消しています。

また、名前の入力を任意にするとともに、ウェブサイト入力欄は基本的に消しています。

名前とメールアドレスの入力を任意にする方法

これは、簡単ですね。

まず、Wordpressの管理画面で「設定」→「ディスカッション」をクリック。
ディスカッション設定

するとディスカッション設定の画面が開かれますので、「名前とメールアドレスの入力を必須にする」のチェックを外し、「変更を保存」をクリック。
名前とメールアドレスの入力を必須にする

これで、名前とメールアドレスの入力が任意になりました。

Wordpressのコメント欄(デフォルト)

下矢印

Wordpressのコメント欄(カスタマイズ後)

メールアドレスとウェブサイトの入力欄を消す方法

まずは、functions.phpにコードを追記する方法をご紹介します。

ちなみに、コメントをいただくためのハードルを究極に下げるには、名前・メールアドレス・ウェブサイトの全ての入力欄を消すと、本文だけを入力すれば良いので、ハードルがグッと下がるかもしれません。

が、名前がないと、返信に対する返信などがあった場合に誰が誰だかわけが分からなくなります。

なので名前欄くらいは残しておいて、メールアドレスとウェブサイトの入力欄のみ消したいと思います。

functions.phpで入力欄を消す方法に関しては、WordPress コメント入力欄をカスタマイズしてウェブサイト(URL)やメールアドレスを簡単に消す方法 | debateを参考にさせていただきました。

メールアドレス・ウェブサイトの入力欄を消すには、以下のコードをfunctions.phpの1番下部に追記します。

functions.php

add_filter('comment_form_default_fields', 'mytheme_remove_url');
function mytheme_remove_url($arg) {
$arg['url'] = '';
$arg['email'] = '';
return $arg;
}

すると、入力欄は消えますが、テーマによっては「メールアドレスが公開されることはありません。」などといった表示がされていると思います。

これを消去するには、以下のコードをfunctions.phpに追記します。

functions.php

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

また、「次のHTML タグと属性が使えます:」といった表示も消したい場合には、以下のコードも追記します。

functions.php

add_filter("comment_form_defaults","my_special_comment_after");
function my_special_comment_after($args){
$args['comment_notes_after'] = '';
return $args;
}

これらのコードをfunctions.phpに追記する前と後では、以下のように変わります。
※下記テスト環境は、Wordpressの純正テーマ「Twenty Fourteen」です。

テーマ「Twenty Fourteen」のコメント欄(デフォルト)

下矢印

テーマ「Twenty Fourteen」のコメント欄(カスタマイズ後)

これだとスッキリすると同時に、コメントへのハードルが下がりますよね。

しかし、この方法を賢威(6.1 コーポレート版)で試したところ上手くいきませんでしたので、テーマによってはこの方法で消えないこともあると思います。

その場合は、別の方法① ~CSSを使って消す~または別の方法② ~comments.phpを編集~といった方法を取るか、functions.phpに追記するコードの中身を改変するか(私は分かりません)といった対応になるかと思われます。

別の方法① ~CSSを使って消す~

ネットで検索してみると、CSSで表示上(見た目上)消しているケースがわりと多いようでした。

これによりGoogleにスパム判定されることはまずないでしょうが、本来存在するものをCSSで無理やり非表示にさせるのは個人的にあまり好きじゃありません。が、1つの方法としてご紹介しておきます。

まずは、コメントフォーム部分の、メールアドレスとウェブサイト入力欄のクラス名を確認します。

ブラウザで投稿ページを開き、右クリックから「ページのソースを表示」をクリックしてソースを表示させたり、右クリックからの「要素を検証」をクリックする(またはF12)などして、ソースを確認します。
ページのソースを表示

すると、テーマ「Twenty Fourteen」の場合は、クラス名が以下のようになっています。
ページのソースコード

メールアドレスが「comment-form-email」で、ウェブサイトが「comment-form-url」ですね。

この場合、CSSに以下のコードを追記すると、表示上ではメールアドレスやウェブサイトの入力欄を消す(非表示にする)ことができます。

mystyle.css

.comment-form-email,
.comment-form-url{ display:none; }

非表示になりました。

テーマ「Twenty Fourteen」のコメント欄(デフォルト)

下矢印

テーマ「Twenty Fourteen」のコメント欄(カスタマイズ後)

この際、ちゃんと名前とメールアドレスの入力を任意にする方法必須から任意に変更しておかないと、コメントをする時にエラーとなりますので注意が必要です。

ちなみに「次のHTML タグと属性が使えます: 」の部分はクラス名が「form-allowed-tags」になっているため、この部分を非表示にしたい場合は、メールアドレスやウェブサイト入力欄の時と同じような形で「.form-allowed-tags{ display:none; }」とCSSに記入してやることで非表示に出来ます。

別の方法② ~comments.phpを編集~

テーマのPHPファイルを直接編集して消す方法です。

この方法だと、テーマを更新(バージョンアップ)すると元に戻ってしまいますので、テーマを更新しない・あるいは自作のテーマなどでしか使えない方法ですね。

私はWordpressのテーマとして賢威を使用していますが、新たなバージョンが出てもバージョンアップするつもりがありませんので、この方法をとっています。

直接コメント部分のPHPファイルを編集して消すには、テーマのコメントテンプレートパーツ「comments.php」を編集します。

私がインストールしている賢威の場合、comments.phpの以下のコードを丸ごと消去します。

comments.php

<p><input type="text" name="email" id="email" value="<?php echo esc_attr($comment_author_email); ?>" size="22" tabindex="2" <?php if ($req) echo "aria-required='true'"; ?> />
<label for="email"><small><?php _e('Mail (will not be published)'); ?> <?php if ($req) _e('(required)'); ?></small></label></p>

<p><input type="text" name="url" id="url" value="<?php echo  esc_attr($comment_author_url); ?>" size="22" tabindex="3" />
<label for="url"><small><?php _e('Website'); ?></small></label></p>

すると、このようにメールアドレスとウェブサイトの入力欄が消えました。
メールアドレスとウェブサイトの入力欄が消えた

ただ、非Web系ブログの場合はコメントをいただく際にウェブサイト入力欄が空白のケースが圧倒的に多いですが、このinosh blogは一応Web関連のブログです。

なので、訪問者の方は何らかのWeb媒体を持っている可能性が比較的高いと思われます。

そういった理由から、inosh blogではウェブサイトの入力欄は表示させ、メールアドレスの入力欄のみ消したいと思います。

そのため、inosh blogでは以下のコード(メールアドレス部分)しか消去していません。

comments.php

<p><input type="text" name="email" id="email" value="<?php echo esc_attr($comment_author_email); ?>" size="22" tabindex="2" <?php if ($req) echo "aria-required='true'"; ?> />
<label for="email"><small><?php _e('Mail (will not be published)'); ?> <?php if ($req) _e('(required)'); ?></small></label></p>

なお、テーマ内にcomments.phpがない場合、以下のフォルダ内にあるcomments.phpをテーマフォルダ内にコピーするとそのまま使えます。

WordPressがインストールされているフォルダ > wp-includes > theme-compat > comments.php

おわりに

私が現在運営しているWebサイトたちの中に、月に60万~100万pvほどのアクセスがあるブログが1つあります。

そのブログのコメント入力欄を随分前に名前+本文のみに変更したのですが、体感できるほどコメント数が増えました。

しかし、それに比例して荒らし行為やマイナスなコメントも増えました。

きっと、メールアドレスを記入した上で攻撃的なコメントをするのは抵抗があるのでしょうね。

それなりのアクセスがあるブログを運営していると、んなΣ(゚□゚ノ)ノ!!って思うような角度からコメントをいただくことも時々ありますが、それもまたブログなのです。

どんなコメントも基本的には勉強になりますし、良いコメントしかないっていうのも逆に胡散臭く感じてしまう場合もあります(ブログのジャンルと運営者の感じにもよりますが)。

それに、明らかな荒らし行為や理解不能なコメントを繰り返す人に対しては、コメント全消し&バンします。

バンはWP-Banというプラグインを使っていますが、なんだそれ?って方はWordPressプラグイン WP-Banで不正アクセスをブロックしよう! | STYLE-EASYなどで紹介されていますので、ご参照ください。

7/8追記 – メールアドレス入力欄の復活

コメントのメールアドレス入力欄を復活させました。

本日投稿したWordPressのコメント欄をLINE風にカスタマイズという記事に書いていますが、コメント欄に表示されるデフォルトのミステリーマンを、自分のプロフィール画像に変更したのです。

で、その際にGravatarを使用してみたのですが、アバターとメールアドレスが紐づけられることを知りました。

訪問者さんからもしコメントいただいた時に、メールアドレスも入力して下さったら、訪問者さんのアバターも適用されると思うので、復活してみました。

ただ、気軽にコメントいただきたいというスタイルは継続中なので、(任意)と付け足してみるとともに、全体的にちょっと変更を加えてみました。

comments.php

<p><input type="text" name="author" id="author" value="<?php echo esc_attr($comment_author); ?>" size="22" tabindex="1" <?php if ($req) echo "aria-required='true'"; ?> />
<label for="author"><small>名前(任意)</small></label></p>

<p><input type="text" name="email" id="email" value="<?php echo esc_attr($comment_author_email); ?>" size="22" tabindex="2" <?php if ($req) echo "aria-required='true'"; ?> />
<label for="email"><small>メールアドレス(任意・非公開)</small></label></p>

<p><input type="text" name="url" id="url" value="<?php echo  esc_attr($comment_author_url); ?>" size="22" tabindex="3" />
<label for="url"><small>Webサイト(任意)</small></label></p>
<?php endif; ?>

<p><textarea name="comment" id="comment" cols="58" rows="10" tabindex="4"></textarea></p>

おわり。

\(^o^)/ ぼっけぇシェア \(^o^)/

この記事へ4件のコメント

  1. 仲村
    2015年4月21日 0:29

    大変参考になるご説明のお陰で、
    名前とメッセージ欄だけのコメント欄が完成しました。

    本当にありがとうございます。

    1点だけ、ご質問させて頂きたいのですが、
    今回のご説明通りにカスタム後、
    テストで別アカウントよりコメントを送信したのですが、
    送信後に何のメッセージも出ない状態でございます。

    通常の場合は、コメント送信後、
    承認確認中のメッセージが見えたり、自分の書いたコメントが、
    見えたりすると思うのですが、何度試しても、その表示なりません。

    もし解決策をご存知でしたら、
    是非、教えて頂けると幸いです。

    お忙しいところ大変お手数ですが、
    よろしくお願い致します。

    • inosh
      2015年4月21日 5:35

      コメントいただき、ありがとうございます。
      また、お役に立てましたようで大変嬉しく思います。

      承認確認メッセージやコメント内容が見えないとのことですが、管理アカウントでそのコメントを承認した場合は、ちゃんと表示されるようになりますでしょうか?

      それと、記事内で何種類かの方法をご紹介しておりますが、その内どの方法でカスタマイズしたか、およびカスタマイズ前は正常に表示されていたかどうかの2点もお知らせいただけますと幸いです。

      原因が分かるかどうかはお約束出来かねますが、上記計3点をお知らせいただけましたら、少しお調べしてみたいと思います。

      何卒よろしくお願いいたします。

      • 仲村
        2015年4月21日 13:48

        お忙しい中ご返答頂き、
        誠にありがとうございます。

        >管理アカウントでそのコメントを承認した場合は、
        >ちゃんと表示されるようになりますでしょうか?

        はい。その際は、問題なくコメント欄に表示されております。

        >記事内で何種類かの方法をご紹介しておりますが、
        >その内どの方法でカスタマイズしたか

        当ページにございます、
        「メールアドレスとウェブサイトの入力欄を消す方法」
        という方法でカスタマイズ致しました。

        >カスタマイズ前は正常に表示されていたかどうか

        はい。通常のワードプレス同様に表示されておりました。

        今現在、利用しているテーマは「iBlog」というものです。
        サイト全体にパスワードをかける為に、
        「Password Protected」というプラグインを使用しております。

        もし何か他に必要な場合は、
        おっしゃって頂けると幸いです。

        お忙しい所大変お手数ですが、
        よろしくお願い致します。

        • inosh
          2015年6月5日 2:07

          ご返信が遅くなってしまい、誠に申し訳ございません。

          1ヶ月以上経っており、遅くなったという次元を超えてますね…。仕事がバタバタしており、気付けば6月になってしまっていました…申し訳ないです。

          もうこのコメント欄をチェックされていないかもしれませんが、先ほど少し試してみましたので、感じたことをお答えいたします。

          ちゃんと調べきれてはいないのですが、おそらくメールアドレスをユーザー判別に使っているのかなと思いました。

          例えばコメント欄のメールアドレスやウェブサイト入力欄の変更などは全く加えず、WP管理画面の「設定 > ディスカッション」の「名前とメールアドレスの入力を必須にする」のチェックを外した状態、「コメントの手動承認を必須にする」のチェックを入れた状態で、メールアドレス欄を空欄にしたままコメントをすると、仲村様が仰っている現象が発生いたします。

          しかしメールアドレスを入力してコメントをすると、ちゃんと「あなたのコメントは承認待ちです。」と表示されます。

          ということで、私もWordPressに特別詳しいというわけでは無いので確実なことは言えませんが、きっとメールアドレスの入力をしていただかないとこの表示はされないのかなと感じました。

          モヤッとした回答でお力になれず恐縮ですが、何卒ご容赦ください。よろしくお願いいたします。

この記事へ4件のトラックバック

コメントを残す

サブコンテンツ
ページトップへ戻る ページエンドへ進む