在我虚构的插件中使用了以下代码来重定向页面中未登录的用户173
(ID)至sample-page
(缓动)。代码运行良好。但就在今天,我发现该代码在Firefox中引起了注意。
当我试图从Settings»Reading中将静态页面设置为首页时,出现了这个问题。
Notice: 正在尝试获取中非对象的属性/wp-includes/class-wp-query.php
在线3760Notice: 正在尝试获取中非对象的属性/wp-includes/class-wp-query.php
在线3762Notice: 正在尝试获取中非对象的属性/wp-includes/class-wp-query.php
在线3764
经过多次检查,我发现以下代码位导致了问题。具体而言,问题在于is_page(173)
.
add_action(\'pre_get_posts\', function($query) {
if( $query->is_main_query() && ! is_admin() && ! is_user_logged_in() && $query->is_page(173) ) {
wp_redirect(home_url(\'/sample-page\'));
exit();
}
});
我试着从
$query->is_page(173)
到
is_page(173)
- 结果是一样的。
为了在空白安装中进行测试,我尝试禁用所有插件并设置默认主题Twenty16,然后重新安装WordPress以获得新的安装。我把下面的代码放在了2016年functions.php
, 当调试打开时,here\'s what I got. (通知位于标题的黑色区域下,只需按Ctrl键+A键即可查看它们)您可以从以下位置检查重定向是否正常工作this page (173
) 到this page 没有任何通知删除>
我的代码有什么问题?