bbPressのメールアドレス任意化をfunctions.phpで行う方法

bbPressはメールアドレスの入力が必須になっています。

でも、簡単な掲示板などの場合、メールアドレスは必須にせず任意にしたい場合も多いですよね。

というわけで、これを解除する方法をご紹介いたします。

「functions.php」に4行コピペするだけ

ググるとbbPressのメールアドレス任意化の情報は結構たくさん出ますよね。

それらを見ると、多くの記事においてbbPressのプラグインファイルを編集している場合が多いようです。

その方法を使うと、PHP処理の一部を削除することになるので、ほんのわずかですが処理が速くなると思われます。

が、bbPressがアップデート時に注意しないと、せっかく編集して任意化したものが消えてしまいます。

というわけで、ここでは「functions.php」を使います。

コードは以下です。

function bbp_no_email( $mail ) {
	return 'no_email@example.com';
}
add_filter( 'bbp_pre_anonymous_post_author_email', 'bbp_no_email' );

たった4行です。

これを「functions.php」のどこかにコピーペーストするだけで、メールアドレスを入力しなくても投稿できるようになります。

bbPressアップデートの時にも消えることはないので、メリットが大きいと思います。

ただし、これだと別な問題が発生します。

それは次項で。

CSSでメールアドレス入力ボックスを非表示にする

この方法は、内部的にはメールアドレスは必須のままです。

その状態に対し、データ入力時(投稿ボタンを押した時)に強制的に「no_email@example.com」をセットしています。

これにより、投稿者がメールアドレスを入力しなくても、投稿できるようにしています。

が、お気付きの方もいらっしゃるかと思いますが、強制的にメールアドレスがセットされているため、同じ方が再度ページにアクセスすると、メールアドレス欄に「no_email@example.com」が表示された状態になってしまいます。

bbPressのメールアドレス入力ボックス

bbPressのメールアドレス入力ボックス

というわけで、私の場合は「style.css」に以下の記述を加えて、非表示にしました。

.bbp-form .bbp-form p:nth-child(3) {
	display: none;
}

これでメールアドレス入力のテキストボックスが非表示になります。

メールアドレス入力ボックスを消した状態

メールアドレス入力ボックスを消した状態

Webサイトの入力ボックスも非表示にしたい場合は、「nth-child(4)」も加えるとOKです。

.bbp-form .bbp-form p:nth-child(3),
.bbp-form .bbp-form p:nth-child(4) {
	display: none;
}

ただ、「nth-child」を使っているので、古いブラウザだと対応していないと思います。(IE8以前など?)

その場合は別な記述にする必要があります。

が、これは今のところ実験していないので、またいずれ書くかもしれません。

あまり必要ないかと思うので・・・。

スポンサードリンク

bbPressのメールアドレス任意化をfunctions.phpで行う方法」への7件のフィードバック

  1. ざき

    わかりやすいご説明ありがとうございます。早速使わさせていただきました!少し別件なのですが、bbpressを無登録制にすると、コメントフォームにタグを記載する欄が消えてしまうのですが、これを表示する方法はありますでしょうか?

  2. sandalot 投稿作成者

    ざき様
    コメントありがとうございます。無登録制の場合のタグ欄についてですが、その点についての知識はありませんでした。なのでbbPressのコードをざっと確認すると「bbp_allow_topic_tags」という名称のfunctionおよびfilterに関係しているというのは判りました。が、具体的にどうすれば良いのかというところまでは辿り着くことができませんでした。もし可能であれば「bbp_allow_topic_tags」をお調べ頂ければと思います。私もいずれ調べて記事にするかもしれませんので、期待せずにお待ちください。

  3. ざき

    早速のご返信ありがとうございます。どこをいじればいいのかもわかりませんでしたので、参考になりまいした!調べてわかり次第私の方からも連絡させていただきます。

  4. たろう

    参考にさせて頂きメールの必須を回避することが出来ましたが
    「style.css」に以下の記述を加えて、非表示にしました。
    と、ありますが、どこにもstyle.cssが見つかりません。これは自分で作るということでしょうか?ここの詳細をご教授願いたいのですがm(__)m

  5. sandalot 投稿作成者

    たろう様
    ご質問ありがとうございます。style.cssはご選択されたテーマのフォルダのものです。デフォルトの設定の場合には以下の場所にいくつかあるフォルダのいずれかに保存されています。
    (wp root)/wp-content/themes/

  6. たろう

    わあ、2年ほど前でコメントが止まっていたので、駄目もとでコメントしてみましたが即座にご回答頂いていたようで大変有難いです。やはりそこの場所の使用しているテーマ(テンプレート?!)の中のcssですよね。そこを変えてダメだったのでコメントさせて頂きました。キャッシュの問題ですかね、ただご回答頂き変更すべき場所がはっきりしましたので、もう一度ブログを読み返させて頂き試してみたいと思います。ご丁寧にご教授頂き有難うございましたm(__)m

  7. seamo

    参考にさせていただきました!
    別件で質問させてください!
    メールアドレス、webサイトを非表示に出来たのですが、逆に画像の添付ボタンまで消えてしまいました!対処法があれば教えていただきたいです!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です