在 WordPress 中,我们删除文章或评论时,他们会先进入回收站,30 天后,回收站中的内容才会永久清删除。30 天内,如果我们需要,我们可以随时中回收站中恢复文章。这是一个不错的保险机制,可以避免人为的操作失误带来的数据丢失。在本文中,我们来了解一下如何限制或禁用这个机制。
禁止 WordPress 自动删除回收站中的文章
WordPress 定期删除文章的功能是通过Planned tasks实现的,该计划任务每日执行,检查回收站中的文章,如果加入的时间超过了 30 天,挂载到计划任务上的操作会删除这些到期的文章。
如果我们需要永久保留 WordPress 回收站中的内容,在合适的时候手动清理,我们可以禁用 WordPress 定期清理回收站的功能,把下面的代码加入到主题的 functions.php 中即可。
add_action( 'init', function () {
remove_action( 'wp_scheduled_delete', 'wp_scheduled_delete' );
} );
这段代码的功能很简单,直接删除了挂载到计划任务中 Hook 上的定期删除文章功能。删除文章的计划任务还是会定期执行,但是挂载到这个计划任务上的实际操作被我们禁用了。
修改自动删除文章的时间
WordPress 默认永久删除文章的时间是在文章加入回收站中的 30 天后,根据需要,我们可以减短或延长这个时间。比如,我们需要设置自定删除文章的期限为 7 天,直接在 wp-config.php 加入以下代码即可。7 可以修改为我们需要的任何天数。
define('EMPTY_TRASH_DAYS', 7);
禁用回收站功能
虽然回收站是一个很棒的功能,但并不是所有人,在所有的站点中都需要,如果我们不需要回收站的功能,我们可以直接禁用回收站,把下面的代码加入到 wp-config.php 中,回收站的功能就被禁用了。
define('EMPTY_TRASH_DAYS', 0);
禁用后,文章、评论中原来的 “移至回收站” 的功能会自动变为 “永久删除”。
默认情况下,WordPress 关于删除文章,清理回收站的处理已经可以满足大多数用户的需要了。即便如此,WordPress 还是留足了接口,方便有特殊需求的用户来实现功能定制。这一点也是 WordPress 如此流行的原因之一。