向打开的评论添加限制

时间:2014-08-13 作者:Adam Lobo

我的讨论设置允许人们在不注册的情况下发表评论,因此评论表单具有标准名称、电子邮件、网站和评论,这正是我想要的。

唯一的问题是,如果有人使用管理员的屏幕名和电子邮件,它看起来就像是来自管理员的评论,因为它拿起了万有引力和所有。

是否有任何方法可以防止用户使用与管理员匹配的电子邮件进行评论-除非是管理员,在这种情况下,他们会登录?

还是我必须在发表评论之前对其进行缓和?

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

您只需在保存评论之前检查输入的名称或电子邮件是否与任何管理员帐户匹配。

function restrict_admin_names() {
    if ( !is_user_logged_in() ) {
        $name = $_POST[\'author\']; // Get Submitted Name
        $email = $_POST[\'email\']; // Get Submitted Email
        $admins = get_super_admins(); // Get an array of admin login
        $adminemail[] = \'\'; // Create an empty array of admin emails
        $admindisplayname[] = \'\'; // Create an empty array of admin display names

            // Create an array of admin emails and display names
            foreach ($admins as $admin) {
                $userdata = get_user_by( \'login\', $admin );
                $adminemail[] = $userdata->user_email;
                $admindisplayname[] = $userdata->display_name;
            }


        if ( isset($name) && in_array( $name, $admins) && in_array( $name, $admindisplayname) ) {
            wp_die( __(\'Sorry, you can not use that name\', \'mytextdomain\' ) );
        }

        if ( isset($email) && in_array( $email, $adminemail) ) {
            wp_die( __(\'Sorry, you can not use that email\', \'mytextdomain\' ) );
        }
    }
}
add_action(\'pre_comment_on_post\', \'restrict_admin_names\');
虽然它只是检查管理员,但您可以修改代码来检查任何用户角色或所有注册用户。

不用说,这段代码进入了你的主题functions.php 文件

SO网友:fromthestone

我认为唯一的办法是缓和你的评论或要求用户注册。另一个解决方案是安装jetpack,让您的用户使用他们的wordpress。com用户名(这在许多情况下可以避免注册)。另一个可以用来避免spambot对旧帖子发表评论的技巧是在几天后关闭对帖子的评论

结束

相关推荐

在自定义的Single-Portfolio.php中使用COMMENTS_TEMPLATE

我希望我的用户能够在我的公文包页面上发表评论。我用自定义帖子创建了一个公文包页面。在我的博客上,我正在使用comments\\u template();然后是评论。php我有代码。在博客方面,它100%有效但是当我添加comments\\u template()时;在公文包单页上,它什么都不做。我没有收到任何错误或任何东西。人们如何在公文包页面中实现评论?您不能使用相同的注释。所有注释的php文件,b谢谢