我有两个网站。一个是新安装,另一个是存在错误的现有站点/在wp-admin/post-new.php
屏幕我已经禁用了所有活动插件,并启用了默认主题,但仍然出现这些错误(因为在页面加载期间,未在DB中正确创建草稿帖子)。
Notice: Trying to get property \'post_type\' of non-object
Warning: Creating default object from empty value
Notice: Trying to get property \'post_status\' of non-object
Notice: Trying to get property \'ID\' of non-object
我找到了一个问题wp_insert_post()
加载时wp-admin/post-new.php
屏幕为了测试,我添加了wp_die( print_r( $wpdb ) );
在wp-includes/post.php
核心文件(here). 这将输出有关数据库查询的大量信息。不存在错误,并且它说[rows_affected] => 1, [insert_id] => 0,
以及wp_insert_post()
始终为0。我不明白为什么在默认的核心主题下,没有插件处于活动状态,没有mu插件目录,没有更改的核心文件,wp_insert_post()
始终返回0。帖子插入到数据库中,但它的帖子ID始终为0,帖子是新的。php屏幕白色屏幕。启用WP\\U调试后,会出现上述错误。我有一种感觉,这和一个数据库有关,但我看不到任何错误会表明这一点。这两个数据库都是InnoDB,除了其中保存的数据外,几乎完全相同。
我最基本的测试代码wp_insert_post()
如下所示,如所述,在一个场地上工作,而不是在另一个场地。
$my_post = array(
\'post_title\' => \'test\',
\'post_content\' => \'\',
\'post_status\' => \'publish\',
\'post_author\' => 1,
);
// Insert the post into the database
$test = wp_insert_post( $my_post );
wp_die( \'New ID: \' . $test );
在非工作站点上,帖子作为帖子0插入到数据库中,并设置为自动草稿。来自损坏的$wpdb的Var转储var_dump
的$wpdb
返回内部wp_insert_post()
在上面链接的核心文件中:https://pastebin.com/CGGv5q4N
正如您所看到的,没有可见的错误,而且似乎应该为帖子分配一个帖子ID,因为它在DB中,但它始终是帖子ID 0。