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

更新于 2022年1月14日 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自带的小工具定制样式或者不想我们自定义的小工具淹没在默认的小工具当中,最好移除不需要的小工具。

Wordpress如何修改发送邮件的默认邮箱WordPress如何修改发送邮件的默认邮箱

WordPress安装完成之后默认会自动创建一个系统邮箱地址和一个发件人,邮箱地址是 WordPress@yourblogname.com,而发件人则是WordPress。尽管我们已经在后台将系统邮箱地址设定为其它名称,我们博客的邮件接收人看

WordPress文章编辑器页面右侧的分类展示使用的是什么函数?WordPress文章编辑器页面右侧的分类展示使用的是什么函数?

WordPress文章编辑器页面右侧的分类展示使用的是wp_terms_checklist()函数。该函数用于显示一个包含分类目录或标签的复选框菜单,允许用户在文章编辑页面中选择相关的分类或标签。

安全禁用 WP REST API安全禁用 WP REST API

//developer.wordpress.org/rest-api/using-the-rest-api/frequently-asked-questions/#can-i-disable-the-rest-接口据此,Wordpress。

蜂集采集器,一款全自动的wordpress采集插件蜂集采集器,一款全自动的wordpress采集插件

imwprobot(蜂集)是一款wordpress采集插件。有什么功能1. 全自动无人值守,支持定时采集2. 可自动同步目标站的更新3. AI自动关键词、自动摘要生成4. 直接发布到wordpress,不需要额外的接口支持5. 正文图片和缩略

wordpress如何在一个页面显示所有文章wordpress如何在一个页面显示所有文章

让WordPress一个页面显示全部分类的文章cat=’ . $cat->php echo $cat->a href=”<$cats = get_categories(array(‘include’ =>

WordPress数据库中存储 wp_cron 任务的字段是什么WordPress数据库中存储 wp_cron 任务的字段是什么

wp_next_scheduled(‘my_awesome_cron_hook’)。_get_cron_array()或get_option(‘cron’)。

通过 wp-config.php 在 wordpress 上正确强制 SSL通过 wp-config.php 在 wordpress 上正确强制 SSL

如果我编辑wp-config.php我应该添加:(.*) https://%{SERVER_NAME}/$1 [ wp_redirect(‘https://’ . $_SERVER[

好看 (0) 很好看 (0) 非常好看 (0)