0

WORDPRESS:我刚刚在我的 wp_user 行 (foo) 上用 phpMyadmin 创建了一个额外的列,我现在需要每个用户在登录时更新他们的列。我已经成功地调用了每个用户的值:

            <?php

        $wpdb->hide_errors(); auth_redirect_login(); nocache_headers();
                    $current_user = wp_get_current_user();
                    if ( 0 == $current_user->ID ) {
                        // Not logged in.
                    } else {
                        echo '<input>' . $current_user->foo . '/>';


                    }
                    ?>
4

1 回答 1

2

你能解释一下为什么你改变了 WordPress 表吗?

这是一个糟糕的做法。如果 WP 必须及时更新,我非常怀疑您的专栏是否会持续存在。

有一个名为 WP_Usermeta 的表可以满足您的需求。

您可以通过以下方式访问和更新您的价值:

update_usermeta($userId,'foo',"1");

$foo = get_usermeta($userId,'foo');

现在,对于您的主要问题,您可以重载 wp_authenticate 函数或使用“Authenticate”之类的过滤器(取自mjangda 的回答)。

add_filter('authenticate', 'check_login', 10, 3);
function check_login($user, $username, $password) {
$user = get_userdatabylogin($username); 

if( /* check to see if user is allowed */ ) {
    return null;
}
return $user;

}

于 2012-06-07T13:41:49.867 回答