我有一个非常基本的问题,我很惊讶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,它是一个多站点设置。
谢谢