【问题标题】:How do WordPress restore trashed posts to previous status?WordPress 如何将已删除的帖子恢复到以前的状态?
【发布时间】:2014-11-02 16:57:15
【问题描述】:

我正在为我的一个网站创建一个简单的管理系统,现在我正在创建一个受 WordPress 帖子系统启发的博客。

在我的博客中,您可以将其保存为草稿或已发布版本。 而现在我想创建一个方法,这样当你删除一个博客时,它会在数据库中变为“已删除”。而当你恢复它时,它会再次恢复为相同的类型,就像WordPress一样。

但是 WordPress 如何将已删除的帖子恢复到原始 post_status?我查看了 WordPress 数据库,但我不知道它是如何做到的,因为原来的 post_status 在被丢弃并且没有存储在表中的任何其他位置时被替换为“trash”。

那么它是如何“记住”它的原始 post_status 的呢?希望你明白我在问什么:D

很抱歉不是与代码相关的问题,但我在其他任何地方都找不到任何答案。

  • 谢谢

【问题讨论】:

  • trash 是帖子状态而不是帖子类型。您只需在名为 post_status 的帖子表中添加一列即可轻松完成。这样您就可以按状态组织您的帖子。比如,draftpublishtrash等等......
  • 它存储以前的状态。无所谓在哪里。您正在实施一个新系统,您可以选择存储它的位置。
  • 我已经在数据库中搜索过了,它没有存储之前的状态

标签: php mysql wordpress


【解决方案1】:

简而言之:

WordPress 帖子的上一个帖子状态存储在 wp_postmeta 表中。 在该表中,还存储了帖子被删除的时间。

如果您随后恢复帖子,则包含该特定帖子的数据的行将被删除。

这应该可以回答你的问题。

【讨论】:

    【解决方案2】:

    坦率地说,这是基本的东西。您应该查看 wp_posts 表并了解已删除帖子和已发布帖子(可能还有其他帖子)之间的区别。 Wordpress 通过更改该特定数据行的 post_status 列来做到这一点。这样它就知道相关帖子的当前状态。

    它可能与答案无关,但对于那些正在寻找这个问题的答案的人,应该考虑查看数据源,即您尝试学习的任何系统的数据库......无论是 Wordpress 还是 Moodle .

    【讨论】:

    • 但是当该列更改为“垃圾”时,它如何知道之前的状态是什么?
    • @Kristiansen 是什么让你这么认为?
    • 因为如果你在 WordPress 中点击恢复它会恢复到以前的状态。
    【解决方案3】:

    所有帖子、页面和cpts都存储在数据库中的{table_prefix}_posts中。

    被删除的帖子、页面或 cpts 的 post_statustrash 在某些情况下永久链接也更改为 __trashed

    e.g; http://example.com/sample-page__trashed
    

    要恢复帖子页面,请将post_status 改回published 并从永久链接中删除__trashed(如果存在)。

    我最近修复了网站上使用“前端用户专业版”插件的问题,并且登录页面和重置密码页面被丢弃。该网站无法正常工作,我使用上述方法修复了它。

    【讨论】:

      猜你喜欢
      • 2021-05-22
      • 2015-09-20
      • 1970-01-01
      • 2011-10-21
      • 1970-01-01
      • 1970-01-01
      • 2011-06-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多