如何为非wp_用户提供访问wp_admin页面的权限?

时间:2018-02-27 作者:hema anjali

function custom_authenticate_username_password($user,$username, $password ) {

        global $wpdb;
        $table_name =\'users\';
        $sql="select * from $table_name where username=\'".$username."\' and password=\'".$password."\'";
        $user=$wpdb->get_results($sql);

    if(!empty($user)){

             echo \'success\';


        }

        else{
            echo \'faliure\';
        }



}
remove_filter( \'authenticate\', \'wp_authenticate_username_password\', 20, 3 );

add_filter( \'authenticate\', \'custom_authenticate_username_password\', 20, 3);
这里的users表包含一些用户信息。这些用户不是wp注册用户,但我想为这些用户提供wp\\u admin访问权限。我该怎么做?

1 个回复
SO网友:Mark Kaplun

仅仅能够根据用户/密码(或您使用的任何其他身份验证参数)对用户进行身份验证是不够的,因为用户能力将在整个代码中进行测试,包括在管理员和前端,也可能是其他基于用户的信息,如电子邮件地址、头像等。

因此,您需要模拟所有相关信息,坦率地说,最简单的方法就是将用户创建为合适的wordpress用户,即使您对感兴趣的用户很少使用这些信息。

或者换一种说法,由于身份验证没有返回,因此会出现错误WP_User 对象您可以创建一个继承它的类(可能),但所做的工作可能比在DB中创建一个合适的用户要大得多。

结束

相关推荐

既然`wp_login`已弃用,是否应该使用它?

我正在编写一个小脚本,在登录后需要用户角色。我想wp_login() 那就太好了。我读到这个在用户登录后运行,包含2个参数,其中一个是用户名。通过用户名,我可以了解他们的角色。但看起来wp_login() 已经有很长一段时间不推荐使用了。我不认为wp_signon() 可以用同样的方式满足我的需求wp_login() 可以问题是,我应该使用wp_login() 钩