私のコメントフォームがbbpressフォーラムのトピックに置き換えられるようにbbpress-post-topicsプラグインをインストールしました。それは動作しますが、匿名投稿を有効にしたいです。
現時点では、上記のとおり、作成者名、電子メール、Webサイト、およびトピックのタイトルが必要です。私はこれを調整して 'トピックのタイトル'だけが必要とされ、彼らがログインしていない場合、彼らの投稿は '匿名'と呼ばれるユーザーに起因すると考えます
必要に応じてPHPを編集できます - フォーラムの[アカウントを持たないゲストユーザーにもトピックや返信を作成することを許可する]の設定で、私が目指していることが達成できたと思います。
注意:この問題は伝統的なフォーラムにもあります。
http://www.rugbydata.com/forums/forum/aviva-premiership/ /
あなたは作者名/ Eメールが必須フィールドであるのを見ることができます。
ユーザーがアカウントを作成しなくても匿名で投稿できるように、必須フィールドとしてそれらを削除するにはどうすればよいですか。
空の匿名 返信を投稿すると、次のエラーが発生します。
BBPress の一部はこれを処理する責任があり、ファイル/bbpress/includes/replies/functions.php
内のbbp_new_reply_handler()
関数です。それは私達にとって興味があるこれらのラインを含んでいます:
// User is anonymous
if ( bbp_is_anonymous() ) {
// Filter anonymous data
$anonymous_data = bbp_filter_anonymous_post_data();
bbp_filter_anonymous_post_data()
は、ファイル/bbpress/includes/replies/functions.php
で定義されています。
これはデモプラグインです。
ここで、
/**
* Plugin Name: Empty Anonymous Replies in BBPress
* Plugin URI: http://wordpress.stackexchange.com/a/133420/26350
*/
add_action( 'init', array( 'WPSE_Empty_Anonymous_Replies', 'init' ) );
class WPSE_Empty_Anonymous_Replies
{
static protected $name = 'nobody';
static protected $email = '[email protected]';
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;
}
}
これがあなたを正しい方向に向けることを願っています。