目前,我正在wordpress中创建一个基于ajax的登录系统,成功登录后,它会重定向到主页,但我需要的是,它需要停留在用户登录的当前页面上。这是我的函数代码。php。
function ajax_auth_init(){
wp_register_script(\'validate-script\', get_template_directory_uri() . \'/assets/ajax/jquery.validate.js\', array(\'jquery\') );
wp_enqueue_script(\'validate-script\');
wp_register_script(\'ajax-auth-script\', get_template_directory_uri() . \'/assets/ajax/ajax-auth-script.js\', array(\'jquery\') );
wp_enqueue_script(\'ajax-auth-script\');
wp_localize_script( \'ajax-auth-script\', \'ajax_auth_object\', array(
\'ajaxurl\' => admin_url( \'admin-ajax.php\' ),
\'redirecturl\' => home_url(),
\'loadingmessage\' => __(\'Sending user info, please wait...\')
));
// Enable the user with no privileges to run ajax_login() in AJAX
add_action( \'wp_ajax_nopriv_ajaxlogin\', \'ajax_login\' );
// Enable the user with no privileges to run ajax_register() in AJAX
add_action( \'wp_ajax_nopriv_ajaxregister\', \'ajax_register\' );
// Enable the user with no privileges to run ajax_forgotPassword() in AJAX
add_action( \'wp_ajax_nopriv_ajaxforgotpassword\', \'ajax_forgotPassword\' );
}
// Execute the action only if the user isn\'t logged in
if (!is_user_logged_in()) {
add_action(\'init\', \'ajax_auth_init\');
}
我试图通过添加重定向url来实现这一点。即使在这之后,它也不起作用,
global $wp;
echo home_url( $wp->request )
最合适的回答,由SO网友:J. Shabu 整理而成
请尝试以下代码,它将为您工作。请将此添加到您的函数中。获取当前页面URL的php
/*Get Current Url */
function currentUrl( $trim_query_string = false ) {
$pageURL = (isset( $_SERVER[\'HTTPS\'] ) && $_SERVER[\'HTTPS\'] == \'on\') ? "https://" : "http://";
$pageURL .= $_SERVER["SERVER_NAME"] . $_SERVER["REQUEST_URI"];
if( ! $trim_query_string ) {
return $pageURL;
} else {
$url = explode( \'?\', $pageURL );
return $url[0];
}
}
请更换主页();使用currentUrl();这肯定会奏效的。