WordPress – 如何检测当前页面是否为登录页面

更新于 2025年4月19日 WordPress 教程

WordPress – 如何检测当前页面是否为登录页面

有没有比使用全局变量$pagenow来检测当前页面(如果它是登录页面is_admin()更好的方法,比如is_admin()函数?

if ($pagenow != 'wp-login.php' && !is_admin())
{
    // Do something
}

有一个带有 getter get_current_screen()的全局变量$current_screen (在/wp-admin/includes/template.php声明)但它总是等于null

在#15686(检测当前页面模板标签) – WordPress Trac 它说$pagenow它通常被使用,但我认为这不是将非动态页面与文件名而不是功能(如管理页面)进行比较的好方法.

解决方案

虽然我倾向于同意其他人需要函数 is_login_page() 或类似的东西,

<?php
function is_login_page() {
    return in_array($GLOBALS['pagenow'], array('wp-login.php', 'wp-register.php'));
}

如果您像我一样,实际上尝试取消注册/弄乱 WordPress 自动加载的 jQuery,那么正确答案是:

不要使用wp_print_styles来注册你的脚本——改用wp_enqueue_scripts

这个钩子只会在前端运行,而不是在登录页面上运行,所以不需要解决方法。

你不能解释一下你打算用它做什么吗? 所以我可以告诉你是否应该使用 wordpress hooks 进行编码。

或者您可以使用绝对uri,只需将其与 wp-login.php 匹配即可

<?php
$uri = $_SERVER['REQUEST_URI'];

echo $uri;

?>

如果您想尽可能不独立于 WP; 例如在一个插件中,使未来的更改超出范围。 你可以使用这样的东西:

function is_login_page() {
    return !strncmp($_SERVER['REQUEST_URI'], '/wp-login.php', strlen('/wp-login.php'));
}

如果有人使用插件来更改他的登录页面 URL,上述所有方法都将不起作用。 如果您的登录页面 URL 被任何安全插件(如 (Lockdown WP Amin) 或类似插件)更改,那么您可以使用此高级完整功能。 这是我现在最好的方法:

//---------------------------------------------------------------
//Check if we are inside the login page or not
//---------------------------------------------------------------
function is_inside_login_page()
{
    //true if login page URL is still normal
    if(in_array($GLOBALS['pagenow'], array('wp-login.php', 'wp-register.php'))) return true;
    
    //true if login page URL is changed by some security plugins
    if(has_action('login_init')) return true;
    
    //Else if nothing above happens >> return false
    return false;
}

你可能还喜欢下面这些文章

如何为WordPress添加自定义登录页面样式如何为WordPress添加自定义登录页面样式

为WordPress网站打造个性化登录页面能显著提升品牌形象与用户体验。本文详细介绍三种实现方法:使用LoginPress等插件可直观调整背景、LOGO、按钮等元素,适合新手;部分高级主题内置定制功能,免插件更轻量;通过编辑functions

怎样为WordPress网站添加自定义登录背景怎样为WordPress网站添加自定义登录背景

本文介绍了两种为WordPress网站自定义登录背景的方法,帮助用户打造独特的品牌形象。第一种是通过LoginPress插件实现可视化操作,无需代码即可上传背景图并调整显示效果;第二种是手动添加CSS代码到主题文件,适合追求轻量化的用户。文章

WordPress前台如何显示登录用户的最后登录时间WordPress前台如何显示登录用户的最后登录时间

s'));}add_action('wp_login','user_last_login');//。get_last_login($userdata->ID);。

WordPress如何只允许游客浏览指定分类的文章WordPress如何只允许游客浏览指定分类的文章

WordPress只允许游客浏览指定分类的文章只允许游客浏览指定分类的文章网上可以找到类似的代码:add_action('template_redirect',。

如何为WordPress添加自定义后台登录LOGO如何为WordPress添加自定义后台登录LOGO

本文详细介绍了为WordPress后台登录页面替换默认LOGO的两种实用方法。通过使用Easy Login Logo插件(无需代码)或添加自定义CSS代码(适合开发者),用户只需10分钟即可将默认WordPress标志替换为品牌LOGO。文章

怎么解决 WordPress 后台站点地址后无法登录网站的问题怎么解决 WordPress 后台站点地址后无法登录网站的问题

的新手可能会认为直接在后台常规设置页面,WordPress地址(URL)和站点地址(URL)中修改地址就可以换域名了,这是绝对错误的做法。后台站点地址后无法登录网站比较常见的方法是登录phpMyAdmin修改数据库wp-options表中ho

怎样使用WordPress制作会员注册系统怎样使用WordPress制作会员注册系统

本文详细指导如何利用WordPress快速搭建专业会员注册系统,无需编程基础。通过Ultimate Member插件,30分钟内即可实现前端注册/登录表单、用户资料管理及会员分级等核心功能。文章从SSL环境配置、插件安装、表单设计到社交登录集

WordPress小说主题wpnovo,支持多语言、付费阅读、VIP会员功能的精美小说模板WordPress小说主题wpnovo,支持多语言、付费阅读、VIP会员功能的精美小说模板

//demo.imwpweb.com/wpnovo/多设备支持主题支持PC和移动端界面,独立设置,互不干扰。移动端首页(右)图:小说页面PC端和移动端的展示付费订阅主题支持付费订阅功能,支持付费单章订阅、整本小说订阅模式。