コメント内に投稿した回答は、次のように使用できます。
これを可能にするために必要なものは次のとおりです。私たちがユーザー名でのみユーザーログインに使用するwordpress関数用にajax hooks
を作成し、その関数にjQuery ajax呼び出しを行います。
最初に行う手順は次のとおりです。wp-content/themes/your_theme_name/
functions.php
というファイルを開き、ファイルの最後に次のコードを追加します。
function username_login(){
// Automatic login //
$username = $_POST['username'];
$user = get_user_by('login', $username);
// Redirect URL //
if (!is_wp_error($user))
{
wp_clear_auth_cookie();
wp_set_current_user ($user->ID);
wp_set_auth_cookie ($user->ID);
$redirect_to = user_admin_url();
echo json_encode(array('error_code'=>0));
exit();
} else {
echo json_encode(array('error_code'=>1));
exit();
}
exit();
}
add_action('wp_ajax_username_login','username_login');
add_action('wp_ajax_nopriv_username_login','username_login');
あなたが見ることができるように、我々はAjaxのコントローラから当社username_login
機能にフックするadd_action
機能を使用している、私たちはここに必要な次のステップはへのAJAX呼び出しを行うために、よりおよそwordpress hooks here
を読みます私たちが作成し、ユーザーのログインをして、ユーザーがログインしたときにサイトを更新する機能です。必要なのは、次のコードを使用してWordpressにログインするユーザーに要求を送信することです。私たちは今、何をする必要があるか、あなたはjavascriptのコードの上で見ることができるように、我々は、フォームセレクタがusername_login
と呼ばれている
jQuery('#username_login').on('submit',function(e){
e.preventDefault();
var data = $(this).serializeArray();
data.push({ name:'action',value:'username_login' });
$.ajax({
url:"<?php echo admin_url('admin-ajax.php'); ?>";,
type: 'POST',
dataType: 'json',
data:data,
success:function(response){
if(response.error_code == 1){
alert('user cannot login')
} else {
alert('user logged in');
location.reload();
}
}
});
});
:wp-content/themes/your_theme_name/
とオープンfooter.php
の内側に配置され、あなたのfooter.phpファイルに以下のコードを追加します。これはこの流れで動作するように起こっているか、今、あなたはすべてを持っていることを
<form id="username_login">
<input type="text" name="username" placeholder="Your username..." required/>
<button type="submit" name="submit">Login</button>
</form>
:ID username_login
と、それは我々がボタンタイプsubmit
でusername
という入力を作成する必要が内部でフォーム要素を作成しているのですか? 。ユーザーがユーザー名を入力してログインすると、yoursite.com/wp-admin/admin-ajax.php?action=username_login
というパラメータにaction
というAjaxリクエストが送信され、ユーザーがログインしたときにユーザーがログオンすると、ユーザーがログインしてからユーザー通常のユーザーの機能に問題なくアクセスできます。
デフォルトでは、wordpressはあなたが探している機能を提供していません。これを可能にするための最良の方法は、独自のプラグインを作成してプラグインをusersテーブルに接続してから、ユーザー名のみのカスタムログインフォームを作成することです。ユーザーの元のパスワードをusermetaに保存してください(塩漬けされハッシュされたパスワードではありません)。ユーザー名に基づいてusermetaからパスワードを取得し、そのパスワードとユーザー名をwordpress login関数に送信します。これによりユーザーがログインし、セッションが設定されます。 –
@ArshSinghこれはどうやってできますか? http://wordpress.stackexchange.com/questions/53503/can-i-programmatically-login-a-user-without-a-password –
これを使用する場合は、http://wordpress.stackexchangeをチェックしましたか? .com/a/128445/66430 –