为啥我不能在 Wordpress 中创建新帖子?警告:从第 716 行 /public_html/wp-admin/includes/post.php 中的空值创建默认对象

Posted

技术标签:

【中文标题】为啥我不能在 Wordpress 中创建新帖子?警告:从第 716 行 /public_html/wp-admin/includes/post.php 中的空值创建默认对象【英文标题】:Why can't I create new posts in Wordpress? Warning: Creating default object from empty value in /public_html/wp-admin/includes/post.php on line 716为什么我不能在 Wordpress 中创建新帖子?警告:从第 716 行 /public_html/wp-admin/includes/post.php 中的空值创建默认对象 【发布时间】:2020-08-01 10:52:49 【问题描述】:

我遇到了一个问题,我无法再在我的 Wordpress 网站上创建新帖子。

我认为这是在不久前的 Wordpress 更新之后开始的。我也有上传图片的问题,我看到了 ghost cmets(一个关于新 cmets 的图标,但实际上没有 cmets 出现在列表中)。

当点击“帖子 > 添加新”时,我会看到一个带有此警告的白页:

“警告:在第 716 行的 /public_html/wp-admin/includes/post.php 中从空值创建默认对象”

这是第 716 行:

    $post->post_content = (string) apply_filters( 'default_content', $post_content, $post );

在网上搜索后,我认为这些问题与我的数据库有关。我是处理数据库的新手,所以我希望能在这里得到一些帮助。

我尝试过的事情:

使用标准主题 禁用所有插件 更新 Wordpress 降级到 Wordpress 4.0 修复数据库表 运行健康检查发现SQL老了 (5.5.52-MariaDB-cll-lve)。这可能是相关的吗? 在 phpMyAdmin 中检查了“wp_posts > 结构 > ID”的 AUTO_INCREMENT 框,并且 “wp_postmeta > 结构 > idmeta_id”

auto_increment 帮助消除了错误,但反而导致了一些新问题。我激活了它并可以点击“帖子>添加新”。然而,Wordpress 为同一个帖子创建了多个副本,大约有 15 个帖子,而不是只有一个。我将它们删除并尝试创建新帖子,但它仍然记得已删除的帖子并尝试从垃圾箱中的帖子重新创建新帖子。

我检查并尝试过的链接:

https://wordpress.org/support/topic/creating-default-object-from-empty-value-of-line-639-wp-adminincludespostphp/ https://wordpress.org/support/topic/shoud-wp_posts-id-and-wp_post_meta-meta_id-be-auto_increment/

我觉得这也可能是相关的,但我不确定如何使用它:

https://wpindexfixer.tools.managedwphosting.nl/

【问题讨论】:

请提供完整的代码。 感谢穆利的评论!我最终重新安装了 wordpress,将在下面写一个答案。 我遇到了一个由缓存插件(SiteGround Optimizer)引起的类似问题。我通过清除缓存解决了它。 【参考方案1】:

前往 Phpmyadmin 仪表板并尝试查找帖子表,(也可以在名称中,例如:abc_posts),-> 转到结构,->,然后选择 ID,-> 如果选择 Null自动增量,取消选择,然后再次点击保存,选择自动增量(AI),然后再次保存。试试这个,它对我有用。

【讨论】:

【参考方案2】:

已解决提高 mysql 的内存限制

【讨论】:

【参考方案3】:

如果您在 post.php 第 708 行收到错误

检查表自动增量和主键功能。

【讨论】:

【参考方案4】:

错误是因为表 wp_posts 的列 ID 禁用了 Auto_increment。您可以从 PhpMyAdmin 启用自动增量选项。

wp_posts -> 结构 -> 更改列 ID 选项 -> 检查 AUTO_INCREMENT 选项 -> 保存。

您可以在数据库中运行以下查询:

ALTER TABLE wp_posts CHANGE ID ID BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT;`

您可能还需要为表 wp_postmeta 启用自动增量。

【讨论】:

【参考方案5】:

更新:只是想明确一下这是一种解决方法,我仍然不知道到底是什么问题。

将其留在这里以防其他人遇到同样的问题。我向我的兄弟寻求帮助,由于出现了很多奇怪的错误,我们决定重新安装 wordpress。我们就是这样做的:

    使用“工具”>“导出”选项进行备份 进入 wp-config 文件并将表前缀名称更改为全新的名称。 $table_prefix = '更改此名称'; 访问 mysite.com/wp-admin 并填写 WordPress 安装信息。 转到工具 > 导入 > WordPress。包含附件。 所有内容重新出现大约需要半小时,但现在似乎可以正常工作了。

【讨论】:

这不是答案,因为您没有找到问题的根源 - 只有一种解决方法。此外,按照您的方式更改表前缀可能会导致其他问题。我建议 - 开始一个新的 wordpres 网站并像你一样对帖子执行导出/导入。 你好@Mulli!我会改写它,以便清楚这是一种解决方法。我确实首先尝试在不更改表前缀的情况下添加一个全新的 wordpress,但后来我在帖子中遇到了同样的错误。所以它似乎与旧的数据库表有关。至少到目前为止,该网站没有新问题,如果我注意到什么,会更新这篇文章。感谢您的意见!

以上是关于为啥我不能在 Wordpress 中创建新帖子?警告:从第 716 行 /public_html/wp-admin/includes/post.php 中的空值创建默认对象的主要内容,如果未能解决你的问题,请参考以下文章

为啥 AS3 在 for 循环中创建新实例?

为 Wordpress 中的每个新帖子自动创建一个新的 Mailchimp 邮件列表(M​​ailchimp API 3.0+)

为啥在其中创建新文件时目录的更改时间(ctime)会更改?

即使未加载 codeigniter 会话库,也会在数据库中创建新的会话条目。为啥?

使用 MVVM 在 WPF 中创建新窗口的最佳方法

如何只允许特定用户在 Firebase 中创建新用户?