我可以通过ajax登出wordpress吗?你不能使用wp-login.php
,所以我们需要使用admin-ajax.php
。我正在使用以下代码:
html(小部件):
<form id="logout" action="logout" method="post">
<input class="submit_button" type="submit" value="<?php echo $lg_logout[$lang] ?>" name="submit">
<?php wp_nonce_field( 'ajax-logout-nonce', 'logoutsecurity' ); ?>
</form>
functions.php
add_action('init', 'ajax_login_init');
function ajax_logout_init(){
add_action( 'wp_ajax_ajaxlogout', 'ajax_logout' );
}
add_action('init', 'ajax_logout_init');
function ajax_logout(){
check_ajax_referer( 'ajax-logout-nonce', 'logoutsecurity' );
// kill session
wp_clear_auth_cookie();
wp_logout();
die();
}
和Ajax(JavaScript)相关:
$('form#logout').on('submit', function(e){
$.ajax({
type: 'POST',
url: siteUrl+'/wp-admin/admin-ajax.php',
data: {
'action': 'ajaxlogout', //calls wp_ajax_nopriv_ajaxlogout
'logoutsecurity': $('form#logout #logoutsecurity').val() },
success: function(data){
console.log('tutu');
//relodlognwidget();
}
});
e.preventDefault();
});
有什么问题吗?