問題描述

如何檢查當前頁面是否為 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 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。