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で行う方法」への3件のフィードバック

  1. ざき

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

  2. sandalot 投稿作成者

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

  3. ざき

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

twitterまたはFacebookでもコメントして頂けます