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前台如何显示登录用户的最后登录时间WordPress前台如何显示登录用户的最后登录时间

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

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

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

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

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

如何获取wordpress注册用户的数量如何获取wordpress注册用户的数量

$users=wp_list_authors(‘echo=0&exclude_admin=0&hide_empty=0&optioncount=1&style=0’);。

wordpress如何限制普通用户进入admin后台wordpress如何限制普通用户进入admin后台

但是,新用户在登录后,如果在浏览器地址栏输入wordpress后台的地址,依然可以进入到wordpress网站的后台,这不是我们所想要的。我们的需求是:新用户只要不是wordpress网站的管理员,就不让它进入到wordpress网站的后台。

WordPress 插件定制WordPress 插件定制

以下是在WordPress中自定义插件的简单步骤。它将启动内置的WordPress主题customizer。在登录定制程序页面上,您可以按照自定义WordPress主题的方式自定义登录页面。

WordPress付费文档下载插件paydoc介绍与下载WordPress付费文档下载插件paydoc介绍与下载

默认付费意味着所有的下载操作都需要付费,且支付的价格为默认的价格设置里的价格。如果设置的是免费,那么用户点击下载文档后不需要支付即可下载。支付设置插件支持支付宝、微信、paypal、虎皮椒这几个支付渠道。