You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WordPress后台菜单页报错求助:Creating default object from empty value警告

解决WordPress导航菜单页面的"Creating default object from empty value"警告

错误原因

这个警告出现在wp-admin/includes/nav-menu.php第406行,本质是代码试图给一个空对象添加属性posts_page。具体触发场景:
当你在WordPress后台设置了静态首页(即show_on_front选项值为page),并且指定了「文章页面」(对应page_for_posts选项),但这个指定的页面ID对应的页面已经被删除、或者ID本身无效时,get_post($posts_page)会返回null,后续代码直接对null对象赋值就触发了该警告。

解决方法

方法一:通过后台设置修复(推荐,无需改代码)

  1. 登录WordPress后台,进入设置 → 阅读页面
  2. 查看「您的首页显示」区域:
    • 如果选择了「静态页面」,检查「文章页面」的下拉选项——如果显示为「(已删除)」或者不存在的页面,这就是问题所在
  3. 修复操作:
    • 若没有可用的文章页面,先去页面 → 新建页面创建一个(例如命名为「博客」)
    • 返回「设置 → 阅读」,在「文章页面」下拉框中选择刚才创建的有效页面,点击「保存更改」即可

方法二:临时代码修复(仅紧急场景使用)

如果暂时无法修改后台设置,可以给原代码添加对象有效性判断,避免对空对象赋值:

// Insert Posts Page.
$posts_page = 'page' === get_option( 'show_on_front' ) ? (int) get_option( 'page_for_posts' ) : 0;

if ( ! empty( $posts_page ) ) {
    $posts_page_obj = get_post( $posts_page );
    // 新增判断:确保$posts_page_obj是有效的WP_Post对象
    if ( is_a( $posts_page_obj, 'WP_Post' ) ) {
        $posts_page_obj->posts_page = true;

        $important_pages[]   = $posts_page_obj;
        $suppress_page_ids[] = $posts_page_obj->ID;
    }
}

注意:修改WordPress核心文件存在风险,更新WordPress后修改会被覆盖,因此优先推荐方法一。

内容的提问来源于stack exchange,提问作者Rick

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 02:40:27