3

私は現在、Wordpress の wp_authenticate 関数をオーバーライドしようとしています (主に pluggable.php のコア ファイルを変更せずに) が、正しい方法で行っているかどうかはわかりません。参考文献が 2 つあります (以下を参照) が、特定の基準が満たされている場合にログインを防止するために何をすべきかが明確に述べられていません。

つまり、アカウントをアクティブ化していない登録ユーザーを防止しようとしています。usermeta テーブル (ユーザー ID に関連付けられている) に md5 の一意の ID を持つユーザーの作成を既に実装しています。基本的に、ログイン時にusermetaテーブルで「activation_key」の値を確認しようとしています。値が存在する場合は、ログインが発生しないようにしたいと考えています。

認証フィルターはまさに私が必要としているもののようですが、それを変更して functions.php ファイルに配置した後、機能していないようです! 通常どおりログインが発生します。

参考文献:

Wordpress のログイン システムにフックして、一部のユーザーをプログラムで停止するにはどうすればよいですか?

http://willnorris.com/2009/03/authentication-in-wordpress-28

4

1 に答える 1

2

私は実際に回避策を見つけました。

カスタム フォームを使用すると、wp_signon 関数を使用して Wordpress にログインできます。

var $creds = array();
$creds['user_login'] = 'example';
$creds['user_password'] = 'plaintextpw';
$creds['remember'] = true;
//check if user has an activation key in the usermeta table
$user = get_userdatabylogin($creds['user_login']); 
if(get_usermeta($user->ID,'activation_key')) { 
} else {
$procLogin = wp_signon( $creds, false );
if ( is_wp_error($procLogin) ) {
echo $user->get_error_message();
} 
echo 'success!';
}

これが誰かを助けることを願っています

于 2010-01-21T04:17:17.003 に答える