如果是登录页面,有没有比使用全局变量$pagenow
更好的方法来检测当前页面,就像is_admin()
函数一样?
if ($pagenow != 'wp-login.php' && !is_admin())
{
// Do something
}
有一个带有getter get_current_screen()
(在/wp-admin/includes/template.php
中声明)的全局变量$current_screen
,但它始终等于null
。
在#15686 (Detect the current page template tag) – WordPress Trac上,它显示通常使用$pagenow
,但我认为这不是比较非动态页面与文件名而不是函数(如管理页面)的好方法。
发布于 2011-05-05 12:31:59
虽然我倾向于同意其他人关于需要一个函数is_login_page()或类似的东西,但我在https://wordpress.stackexchange.com/questions/12863/check-if-were-on-the-wp-login-page找到了似乎是最好的答案,我用它做了以下几点:
<?php
function is_login_page() {
return in_array($GLOBALS['pagenow'], array('wp-login.php', 'wp-register.php'));
}
发布于 2011-03-11 10:23:19
你不能解释一下你要用它做什么吗?所以我可以判断你是否应该使用wordpress钩子来编写代码。
或者,您可以使用绝对uri,只需将其与wp-login.php匹配即可。
<?php
$uri = $_SERVER['REQUEST_URI'];
echo $uri;
?>
发布于 2012-12-21 01:23:21
以防你想要尽可能的不依赖于WP;例如,在一个插件中,将未来的变化保持在范围之外。您可以使用类似以下内容:
function is_login_page() {
return !strncmp($_SERVER['REQUEST_URI'], '/wp-login.php', strlen('/wp-login.php'));
}
https://stackoverflow.com/questions/5266945
复制相似问题