问题描述

如何检查当前页面是否为 wp-login.phpwp-signup.php

有比 $_SERVER['REQUEST_URI']更优雅的解决方案吗?

最佳解决方案

使用全球 $pagenow,它是 WordPress 在运行时的常见全局集:

if ( $GLOBALS['pagenow'] === 'wp-login.php' ) {
    // We're on the login page!
}

您还可以检查登录页面的类型,例如注册:

if ( $GLOBALS['pagenow'] === 'wp-login.php' && ! empty( $_REQUEST['action'] ) && $_REQUEST['action'] === 'register' ) {
    // We're registering
}

以下代码被认为是遗留的,不应该被使用 (wp-register.php 已被弃用,后来被删除了一段时间):

if ( in_array( $GLOBALS['pagenow'], array( 'wp-login.php', 'wp-register.php' ) ) )
    run_my_funky_plugin();

参考文献

注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。