以下未经测试的代码应该可以帮助您开始。基本上,您可以在表单上添加一个显示目标,添加一些javascript以在用户离开用户名字段时添加验证,以及服务器端代码以将javascript排队,并注册ajax操作。
让我知道什么坏了,因为我确信这不会用完盒子。
[!--HTML to add to registration form after user_name (replace square brackets w/angled) --]
[div id="validate_user_login_results"][/div]
## contents of validate_login.js
##
jQuery(document).ready(function(){
jQuery(\'body.login div#login form#loginform input#user_login\').onblur(function(){
jQuery.post( ajaxurl
, {
\'action\':\'validate_user_login\',
\'username\': $(\'body.login div#login form#loginform input#user_login\').val()
}
, function(response){
var res = wpAjax.parseAjaxResponse(response, \'ajax-response\');
jQuery.each( res.responses, function() {
$(\'#validate_user_login_results\').load($this.data);
$("#validate_user_login_results").fadeIn("fast");
## if $this.data == \'OK\' then success action else failure action
}
}
);
});
});
// add to site plugin or functions.php
//
function wpse64865_add_validate_login_js(){
wp_enqueue_script( \'validate_login.js\'
, get_bloginfo(\'template_directory\')
. "/scripts/validate_login.js" // change this to correctly locate javascript
, array( \'jquery\',\'wp-ajax-response\' ) );
}
add_action( \'init\', \'wpse64865_add_validate_login_js\' );
add_action(\'wp_ajax_validate_user_login\', \'wpse64865_ajax_validate_user_login\');
add_action(\'wp_ajax_validate_nopriv_user_login\', \'wpse64865_ajax_validate_user_login\');
function wpse64865_ajax_validate_user_login() {
//Handle request then generate response using WP_Ajax_Response
$username = $_REQUEST[\'username\'];
if ( validate_username( $username )) {
$response = array( \'what\'=>\'validate_user_login\',
\'action\'=>\'validate_user_login_results\',
\'id\'=>\'1\',
\'data\'=>\'Not OK\' // login exists
);
} else {
$response = array( \'what\'=>\'validate_user_login\',
\'action\'=>\'validate_user_login_results\',
\'id\'=>\'1\',
\'data\'=>\'OK\' // check failed, login doesn\'t exist
);
}
$xmlResponse = new WP_Ajax_Response($response);
$xmlResponse->send();
}
编辑:在函数代码中添加缺少的分号。php