2014-11-02 117 views
-3

我正在为我的一个网站创建一个简单的管理系统,现在我正在创建一个受WordPress的帖子系统启发的博客。WordPress如何将邮件恢复到以前的状态?

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

但是WordPress如何将它的垃圾回复到原来的post_status呢?我查看了WordPress数据库,但是我无法弄清楚它是如何实现的,导致原始post_status在被删除时被替换为“垃圾”,并且没有存储在表中的任何其他位置。

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

对不起,不是一个代码相关的问题,但我找不到任何其他地方的任何答案。

  • 感谢
+2

'垃圾'是发布状态不是帖子类型。只需在名为post_status的帖子表中添加一列,即可轻松完成。那么你可以按他们的状态来组织你的帖子。 like,'draft','publish','trash'等.... – 2014-11-02 17:02:02

+0

它存储以前的状态。无所谓在哪里。您正在实施新系统,您可以选择将其存储在何处。 – 2014-11-02 17:31:22

+0

我已经在数据库中搜索过它,并且它不存储以前的状态 – Christensen 2014-11-02 17:40:59

回答

0

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

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

+0

但是当列被更改为“垃圾”时,它如何知道以前的状态是什么? – Christensen 2014-11-02 18:56:35

+0

@Kristiansen是什么让你觉得它呢? – Gogol 2014-11-02 19:29:34

+0

因为如果您在WordPress中单击还原,它会恢复到以前的状态。 – Christensen 2014-11-02 20:13:22

0

要短:

一个WordPress后的以前的状态后,存储在wp_postmeta表。 在该表中,帖子被删除的时间也被存储。

如果您随后还原帖子,则删除包含该帖子的数据的行。

这应该回答你的问题。

0

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

的文章,页面,或者被丢弃CPTS有post_statustrash在某些情况下,永久也改为__trashed

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

要恢复后页面,更改post_statuspublished和删除__trashed从永久链接,如果它存在。

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