我想验证我是否在index.php页面或wordpress主页上。我尝试使用此代码但不起作用。
$homepage = "http://jocuri-copii.com/";
$currentpage = $_SERVER['REQUEST_URI'];
if($homepage==$currentpage)
{
$this->state = TRUE;
}
else
{
$this->state = FALSE;
}
我想知道我是否在http://jocuri-copii.com/并且输入state = true和else = false。这种方法不起作用。
答案 0 :(得分:2)
答案 1 :(得分:2)
您有两种类型的主页:
要确保代码按预期运行,与帖子存档或页面无关,您应该在主题functions.php
上执行此操作:
add_action ('wp', function () {
if (is_home() || is_front_page()) {
// Homepage
}
else {
// Not homepage
}
});
来自is_home()
参考页:
如果为网站的首页设置了静态页面,则此功能仅在您设置为“帖子页面”的页面上返回true。
来自is_front_page()
参考页:
如果您为网站的首页设置了静态页面,则在查看该页面时此函数将返回true。
答案 2 :(得分:1)
在WordPress中,有一些条件可以验证查看者请求的页面类型。对于主页,它取决于您如何配置读数设置(在设置>阅读中找到)。
is_home()
是"帖子页" is_front_page()
也是
我知道这令人困惑。让我们来看看吧。转到设置>阅读您网站后端的管理页面。
以下是给您的提示:
帖子页面(显示您最新帖子的页面,有时称为"博客")将始终为*
true
is_home()
。它是" Home"页。但它并不总是首页,因为这取决于你如何设置"阅读设置。"
当您启动新的WordPress网站时,默认设置为:
首页显示:设置为"您的最新帖子"
在此配置中, is_home()
和is_front_page()
都将设置为TRUE
。
如果您定义静态首页,则条件不同。
"首页"在上面的例子中标识为"我的头版"将执行以下操作:
is_home()
是FALSE
is_front_page()
是TRUE
请注意,is_home()
未设置。为什么?因为is_home()
确实意味着"帖子页面。"它并不意味着"主页。"
帖子页面,在上面的例子中标识为"博客,"将具有以下状态:
is_home()
是TRUE
is_front_page()
是FALSE
根据您配置的阅读设置的方式注意差异非常重要。如果你想看一个视频教程,我有一个available for you here。
请注意,帖子页面的is_home()
功能始终为true
。但这并不一定意味着您在网站的第一个默认页面上。
WordPress有可用于将home
与front page
分开的模板。您可以使用home.php
和front-page.php
。
但是,从您的index.php
开始,您希望使用相应的is_home()
来说明您是帖子页面还是is_front_page()
如果您已定义静态头版。