您可以使用注销当前用户wp_logout()
function:
我认为这是更好的方法。wp_logout()
销毁当前会话,清除授权cookie和调用wp_logout
行动此外,它是一个可插入功能,这意味着可以通过插件重新定义。你可能会错过一些重要的东西,尤其是与其他插件结合使用时。
如果要从JavaScript注销,可以执行wp_logout()
使用ajax(代码未经测试,只是作为基本示例写在这里):
add_action( \'wp_enqueue_scripts\', \'cyb_enqueue_scripts\' );
function cyb_enqueue_scripts()
wp_enqueue_script( \'cyb-ajax-logout\', \'url_to_js_script\', array( \'jquery\' ) );
wp_localize_script( \'cyb-ajax-logout\', \'ajax_logout_params\',
array(
\'ajax_url\' => admin_url( \'admin-ajax.php\' ),
\'logout_nonce\' => wp_create_nonce( \'cyb-logout-nonce\' ),
)
);
}
add_action(\'wp_ajax_cyb_logout\', \'cyb_ajax_logout\');
function cyb_ajax_logout(){
if( check_ajax_referer( \'cyb-logout-nonce\', \'logout_nonce\', false ) ) {
wp_logout();
$reponse = array(
\'message\' => __( \'You have been logged out.\', \'cyb-textdomain\' )
);
wp_send_json_success( $reponse );
} else {
// Ajax referer is wrong
$reponse = array(
\'message\' => __( "Unknown referer. You couldn\'t been logged out.", \'cyb-textdomain\' )
);
wp_send_json_error( $reponse );
}
}
和js:
jQuery(document).ready(function($){
var data = {
action: \'cyb_logout\',
logout_nonce: ajax_logout_params.logout_nonce
};
$.getJSON( ajax_logout_params.ajax_url, data, function( response ) {
if( response.success ) {
// User has been logged out
}
});
});