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以前など?)

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

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

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

スポンサードリンク

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