専用プラグインを作成する方法
WordPressの「plugins」フォルダの中に「empty-anonymous-bbpress」フォルダを作り、その中に作成した「empty-anonymous-bbpress.php」ファイルを入れてください。
empty-anonymous-bbpress.php
<?php
/*
Plugin Name: empty-anonymous-bbpress
Description: bbpressのコメント投稿の名前とメールアドレスを任意にするプラグイン
Version: 1.0
*/
add_action( 'init', array( 'WPSE_Empty_Anonymous_Replies', 'init' ) );
class WPSE_Empty_Anonymous_Replies
{
static protected $name = 'nobody';
static protected $email = 'nobody@example.com';
static public function init()
{
add_filter( 'bbp_filter_anonymous_post_data',
array( __CLASS__, 'bbp_filter_anonymous_post_data' ),
11, 2 );
add_filter( 'bbp_pre_anonymous_post_author_name',
array( __CLASS__, 'bbp_pre_anonymous_post_author_name' ) );
add_filter( 'bbp_pre_anonymous_post_author_email',
array( __CLASS__, 'bbp_pre_anonymous_post_author_email' ) );
}
static public function bbp_filter_anonymous_post_data( $retval, $r )
{
if( self::$name === $r['bbp_anonymous_name']
&& self::$email === $r['bbp_anonymous_email'] )
{
// reset the input to skip writing cookies
$retval = array();
// trick to activate the IP flood check
$retval['bbp_anonymous_flood_check'] = '1';
}
return $retval;
}
static public function bbp_pre_anonymous_post_author_name( $name )
{
remove_filter( current_filter(), array( __CLASS__, __FUNCTION__ ) );
if( empty( $name ) )
$name = self::$name;
return $name;
}
static public function bbp_pre_anonymous_post_author_email( $email )
{
remove_filter( current_filter(), array( __CLASS__, __FUNCTION__ ) );
if( empty( $email ) )
$email = self::$email;
return $email;
}
}
このプラグインでは必須条件を解除するだけで、「名前」「メールアドレス」欄の表示は消えません。そのため、入力項目自体を非表示にしたい方は、直接phpから「名前」欄などを削除するか、cssで非表示にして対応してください。
次のコードをstyle.cssに記述します。
/* メールアドレスを非表示 */
fieldset.bbp-form fieldset.bbp-form p:nth-child(3) {
display: none;
}
/* ウェブサイトを非表示 */
fieldset.bbp-form fieldset.bbp-form p:nth-child(4) {
display: none;
}