有一个更复杂的解决方案代替htaccess或插件。对于那些对这个主题感兴趣的人,我的代码可以在尝试辞职失败后(恰好在之前)重定向。
为什么之前?在尝试注册之前,WordPress会检查用户名和电子邮件地址,它们是否为空,是否已经在DB中,以及电子邮件和用户名是否正确。如果是这样,它会报告错误,您可以在检查之后立即挂接到函数。
do_action( \'register_post\', $sanitized_user_login, $user_email, $errors );
下一步-不可查找-是尝试创建新用户。如果失败,则会出现另一条错误消息,您将被重定向到标准wp\\U登录。php屏幕。
但是,有一个但是。下一步,此过程只调用wp\\u insert\\u user(),此函数仅在空的\\u user\\u登录、现有的\\u user\\u登录和现有的\\u user\\u电子邮件上失败,否则将成功结束。如果您仔细阅读了,则在调用此函数之前会检查所有这些变量(这种双重检查是合乎逻辑的,因为您可以直接从插件调用wp\\u insert\\u user)。
所以,如果在上述挂钩之后注册进程失败,它就会失败,因为WordPress安装有问题,所以,这并不是挂接到注册进程的重定向功能失败。
最后是一些代码,ho只想复制并粘贴一个代码,以便在登录失败后重定向到自定义页面:
add_action(\'register_post\', \'binda_register_fail_redirect\', 99, 3);
function binda_register_fail_redirect( $sanitized_user_login, $user_email, $errors ){
//this line is copied from register_new_user function of wp-login.php
$errors = apply_filters( \'registration_errors\', $errors, $sanitized_user_login, $user_email );
//this if check is copied from register_new_user function of wp-login.php
if ( $errors->get_error_code() ){
//setup your custom URL for redirection
$redirect_url = get_bloginfo(\'url\') . \'/registrace\';
//add error codes to custom redirection URL one by one
foreach ( $errors->errors as $e => $m ){
$redirect_url = add_query_arg( $e, \'1\', $redirect_url );
}
//add finally, redirect to your custom page with all errors in attributes
wp_redirect( $redirect_url );
exit;
}
}