我正在建立一个网站,使用 wordpress+buddypress(最新版本)。
在这个网站上,我有自己的自定义登录|注册|重置密码表单,我不想将它们链接到后端 wp-forms。
我已阻止所有用户的后端表单(默认 wp-login|signup|resetpass 表单)(带有 404 标头代码)
因此,如果您尝试访问 wp-admin/wp-login,您将看到 404。
我不想使用任何类型的重定向
我想停止对特殊 URL 的重定向,以停止从该 URL 重定向到
我想停止重定向 /wp-admin到的任何其他 URL/wp-login.php?redirect_to=http%3A%2F%2Fsite.com%2Fwp-admin%2F&reauth=1
当您尝试访问
www.example.com/wp-admin但未登录时,您将自动被重定向到:
example.com/wp-login.php?redirect_to=http%3A%2F%2Fsite.com%2Fwp-admin%2F&reauth=1
您将被重定向... URL 将自动更改 这是 wordpress 的默认操作。
我想停止自动重定向。
当您尝试访问/wp-admin 时,您必须留在/wp-admin(您不应该重定向到wp-login)。
请参阅这两张图片以获取完整的详细信息:
图片1:

图二:

* 注意:
404 是我造成的……,这不是错误。
我已经测试了很多代码,以阻止它。但没有一个对我有用。
代码 1:
remove_action('template_redirect', 'redirect_canonical');
代码 2:
remove_filter('template_redirect', 'redirect_canonical');
代码 3:
add_action(
'init',
function () {
remove_action('template_redirect', 'wp_redirect_admin_locations', 1000);
}
);
代码 4:
function custom_wp_redirect_admin_locations() {
global $wp_rewrite;
if ( ! ( is_404() && $wp_rewrite->using_permalinks() ) )
return;
$admins = array(
home_url( 'wp-admin', 'relative' ),
);
if ( in_array( untrailingslashit( $_SERVER['REQUEST_URI'] ), $admins ) ) {
$wp_query->set_404();
get_template_part( 404 );
exit();
}
$logins = array(
home_url( 'wp-login.php', 'relative' )
);
if ( in_array( untrailingslashit( $_SERVER['REQUEST_URI'] ), $logins ) ) {
$wp_query->set_404();
get_template_part( 404 );
exit();
}
}
function remove_default_login_redirect() {
remove_action('template_redirect', 'wp_redirect_admin_locations', 1000);
add_action( 'template_redirect', 'custom_wp_redirect_admin_locations', 1000
);
}
add_action('init','remove_default_login_redirect');
代码 5:
add_action(
'template_redirect',
function () {
$requ = untrailingslashit($_SERVER['REQUEST_URI']);
if (site_url('wp-admin', 'relative') ===
untrailingslashit($_SERVER['REQUEST_URI'])) {
remove_action('template_redirect', 'wp_redirect_admin_locations', 1000);
}
}
);
代码 6:
function custom_wp_redirect_admin_locations() {
global $wp_rewrite;
if ( ! ( is_404() && $wp_rewrite->using_permalinks() ) )
return;
$requested_url = untrailingslashit( $_SERVER['REQUEST_URI'] );
$admins = array(
home_url( 'wp-admin', 'relative' ),
home_url( 'dashboard', 'relative' ),
home_url( 'admin', 'relative' ),
site_url( 'dashboard', 'relative' ),
site_url( 'admin', 'relative' ),
);
if ( in_array( untrailingslashit( $_SERVER['REQUEST_URI'] ), $admins ) ) {
redirect_canonical( $requested_url , false );
exit;
}
$logins = array(
home_url( 'wp-login.php', 'relative' )
);
if ( in_array( untrailingslashit( $_SERVER['REQUEST_URI'] ), $logins ) ) {
redirect_canonical( $requested_url , false );
exit;
}
}
function remove_default_login_redirect() {
remove_action('template_redirect', 'wp_redirect_admin_locations', 1000);
add_action( 'template_redirect', 'custom_wp_redirect_admin_locations',
1000);
}
add_action('init','remove_default_login_redirect');
无论我使用什么似乎都没有做我想要的事情。我该怎么做?
编辑:澄清上下文,这不是重复的。
该链接被称为重复链接, 明确表示他希望他的 wp-login 页面重定向到他自己的登录/注册页面。
但我明确表示“请阅读前 16 行”。这意味着我不尝试/想要重定向+我不尝试/想要限制使用任何类型的重定向
另外:在发布之前,我已经阅读了所有这些文章。但它们都不是我想要的。所以我开始了一个新的话题,非常详细。
仅供参考,我已经阅读了另外 7 篇文章(我从中挑选了代码):
但我需要至少 10 个声誉才能发布 2 个以上的链接!所以我不能说超过2。
我很感谢您的时间和关注,但请再仔细阅读我的问题。