我如何在bbpress论坛中设置真正的匿名帖子?

时间:2014-01-28 作者:Dave Hilditch

我已经安装了bbpress post topics插件,这样我的评论表单就会被bbpress论坛主题所取代,它正在工作,但我想启用匿名发布。

how do i remove the fields so users can post anonymously?

目前,如上所述,需要作者姓名、电子邮件、网站和主题标题。我想对此进行调整,以便只需要“主题标题”,如果他们没有登录,他们的帖子将归于一个名为“匿名”的用户

如果需要的话,我可以编辑PHP——我真的认为论坛中的设置“允许没有帐户的来宾用户创建主题和回复”会达到我的目标。

注意:这个问题也存在于传统论坛中,例如。

http://www.rugbydata.com/forums/forum/aviva-premiership/

您可以看到作者姓名/电子邮件是必填字段。

我如何删除它们作为必填字段,以便用户可以真正匿名发布,而无需创建帐户?

1 个回复
最合适的回答,由SO网友:birgire 整理而成

当我们发布空匿名回复时,会出现以下错误:

errrors

负责处理此问题的部分是bbp_new_reply_handler() 函数,在文件中/bbpress/includes/replies/functions.php. 其中包含我们感兴趣的几行内容:

    // 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 = \'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;
        }
    }
我希望这能为你指明正确的方向。

结束

相关推荐

以数组形式返回PAGINATE_COMMENTS_LINKS()

这个documentation 指定:类型(字符串)(可选)控制返回值的格式。可能的值包括:“普通”-链接由换行符分隔的字符串</“数组”-分页链接列表的数组,可完全控制显示为了将推特引导分页样式添加到wordpress评论分页中,我希望返回是一个数组。当我在通话中添加$args时,我得不到任何回报。我的代码:<ol class=\"commentlist\" style=\"list-style: none;\"> <?php wp_list_comments(\