내가 코멘트 안에 게시 한 대답은 다음과 같은 방식으로 사용할 수 있습니다.
이 작업을 수행하는 데 필요한 사항은 다음과 같습니다. 사용자 이름으로 만 사용자 로그인에 사용할 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');
당신이 볼 수 있듯이, 우리는 아약스 컨트롤러에서 우리 username_login
기능에 훅하는 add_action
기능을 사용하고, 더 약 wordpress hooks here
우리가 여기에서 필요로하는 다음 단계가 아약스 통화를 할 읽기 우리가 생성하고 사용자 로그인을 한 다음 사용자가 로그인 할 때 사이트를 새로 고치는 기능. 다음 코드를 사용하여 사용자 로그인을 위해 Wordpress에 요청을 보냅니다. 우리가 지금 무엇을해야하는지, 당신이 자바 스크립트 코드 위의에서 볼 수 있듯이, 우리는 형태 선택이 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>
: 아이디 username_login
로하고 우리가 버튼 타입 submit
으로 username
라는 입력을 만들 필요가 내부 양식 요소를 만드는 것입니다? . 사용자가 사용자 이름을 입력하고 로그인 할 때 ayax 요청은 yoursite.com/wp-admin/admin-ajax.php?action=username_login
이라는 매개 변수와 함께 action
으로 전송되며 사용자가 로그인 한 후 사용자가 로그인하면 사이트가 새로 고쳐집니다 일반 사용자의 기능에 아무런 문제없이 액세스 할 수 있습니다.
기본적으로 wordpress는 사용자가 원하는 기능을 제공하지 않습니다. 이를 가능하게하는 가장 좋은 방법은 자신 만의 플러그인을 만들고 플러그인을 사용자 테이블에 연결 한 다음 사용자 이름이있는 사용자 정의 로그인 양식을 만들어야합니다. 사용자의 원래 비밀번호를 usermeta (소금물이 없거나 해쉬 된 비밀번호가 아님)에 저장 한 다음 사용자가 로그인 할 때 사용자 이름을 입력하십시오. 사용자 이름을 기반으로 usermeta에서 암호를 가져 와서 그 암호와 사용자 이름을 사용자에게 로그인하고 세션을 설정할 wordpress 로그인 기능에 제출하십시오. –
@ArshSingh 그러면 어떻게 가능할까요? http://wordpress.stackexchange.com/questions/53503/can-i-programmatically-login-a-user-without-a-password –
이것을 사용하려면이 http : //wordpress.stackexchange를 확인 했습니까? .com/a/128445/66430 –