函数文档

wp_redirect_admin_locations()

💡 云策文档标注

概述

wp_redirect_admin_locations() 函数用于将简写URL重定向到WordPress管理后台或登录页面,例如将 /admin 重定向到 /wp-admin。

关键要点

  • 函数在特定条件下触发:仅当页面为404错误且启用了固定链接时。
  • 支持多种简写URL:包括 /admin、/dashboard、/login 等,分别重定向到 /wp-admin 或 /wp-login.php。
  • 使用相关函数:如 wp_redirect()、admin_url()、wp_login_url() 等实现重定向逻辑。

代码示例

function wp_redirect_admin_locations() {
	global $wp_rewrite;

	if ( ! ( is_404() && $wp_rewrite->using_permalinks() ) ) {
		return;
	}

	$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, true ) ) {
		wp_redirect( admin_url() );
		exit;
	}

	$logins = array(
		home_url( 'wp-login.php', 'relative' ),
		home_url( 'login.php', 'relative' ),
		home_url( 'login', 'relative' ),
		site_url( 'login', 'relative' ),
	);

	if ( in_array( untrailingslashit( $_SERVER['REQUEST_URI'] ), $logins, true ) ) {
		wp_redirect( wp_login_url() );
		exit;
	}
}

📄 原文内容

Redirects a variety of shorthand URLs to the admin.

Description

If a user visits example.com/admin, they’ll be redirected to /wp-admin.
Visiting /login redirects to /wp-login.php, and so on.

Source

function wp_redirect_admin_locations() {
	global $wp_rewrite;

	if ( ! ( is_404() && $wp_rewrite->using_permalinks() ) ) {
		return;
	}

	$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, true ) ) {
		wp_redirect( admin_url() );
		exit;
	}

	$logins = array(
		home_url( 'wp-login.php', 'relative' ),
		home_url( 'login.php', 'relative' ),
		home_url( 'login', 'relative' ),
		site_url( 'login', 'relative' ),
	);

	if ( in_array( untrailingslashit( $_SERVER['REQUEST_URI'] ), $logins, true ) ) {
		wp_redirect( wp_login_url() );
		exit;
	}
}

Changelog

Version Description
3.4.0 Introduced.