我有一个非常基本的问题,我很惊讶WP没有本地解决方案(除非我忽略了一些东西,希望如此)。
我有一个WP网站static page
在阅读设置中设置为首页。在插件代码中,我试图确定WP是否显示在首页,并将类添加到$classes
如果为true,则返回数组。我使用以下代码来完成它
add_filter(\'body_class\', function($classes){
if(is_front_page() || is_home()){
$classes[] = \'home-page\';
}
return $classes;
});
我两者都用
is_front_page()
和
is_home()
以防将来首页设置从静态页面更改为博客布局。
我遇到的问题是,这段代码添加了home-page
分类至body
即使在wp-signup.php
页
检查代码表明is_front_page()
呼叫WP_Query::is_front_page()
, 基本上返回WP_Query::is_page(get_option(\'page_on_front\'))
. 所以问题的根源是wp-signup.php
符合返回的页面(id)get_option(\'page_on_front\')
(返回ID
设置>阅读中设置为首页的静态页面的)。
WP_Query::is_page()
使用WP_Query::get_queried_object()
在内部确定当前页面是否是方法参数中存在的页面。在里面wp-signup.php
在这种情况下,设置当前查询对象的代码如下
/*...other code... */
elseif ( $this->is_singular && ! empty( $this->post ) ) {
$this->queried_object = $this->post;
$this->queried_object_id = (int) $this->post->ID;
}
/*...other code... */
这表明wordpress出于某种原因查询首页以显示
wp-signup.php
并提出以下问题。
为什么is_front_page()
返回的结果是否错误阿法伊克wp-signup.php
无法使用Wordpress管理员设置将其设置为主页,那么为什么Wordpress代码不能通过检查退出PHP_SELF
或REQUEST_URI
?为什么WP\\U查询的当前主页位于$this->post
在这一点上通过删除plugins(和mu-plugins)目录,我排除了插件问题。它仍然合格wp-signup.php
作为头版,它不适用于任何其他页面。
对此问题的任何帮助都将不胜感激。
Update
我使用的是WP verison 4.2.4,它是一个多站点设置。
谢谢