使用WP-CLI自动删除过期的WordPress瞬态

WordPress插件和主题可以存储大量称为瞬态(Transients)的临时数据。默认情况下,这些瞬变存储在wp_options表中,并且会快速积累。最近,帮别人清理/优化了一个站点,该站点数据库中有58000个过期瞬态,这些瞬态导致数据库每天崩溃。

由于WordPress核心中的特质,如果尝试访问过期的瞬态,则仅从数据库中删除过期的瞬态;如果不进行访问,则瞬态将保留在wp_options表中。本教程将向您展示如何使用WP-CLI从wp_options或外部对象缓存中删除过期的瞬态,以及如何每天使用cronjob自动删除这些瞬态。

使用WP-CLI自动删除过期的WordPress瞬态

使用WP-CLI从WordPress数据库中删除过期的瞬态非常简单:

wp transient delete --expired

如果使用了外部对象缓存(例如Redis、Memcached或PHP-APCu),则使用此命令将其清空:

wp cache flush

可以将以上指令设置到cronjob中,实现自动清理。

crontab -e

可根据以下示例,替换用户和WordPress路径替换(示例中,用户名www):

@daily sudo -u www wp transient delete --expired --path=/www/wwwroot/zhanzhangb.com

使用了对象缓存的示例:

@daily sudo -u www wp cache flush --path=/www/wwwroot/zhanzhangb.com

好了,大功告成!现在不用担心WordPress的过期瞬态了。

什么是WP-CLI?安装使用WP-CLI教程

CLICommand-Line Interface的缩写,也就是“命令行界面”的意思。WP-CLI顾名思义就是WordPress的命令行界面,WP-CLI的目标是为WordPress管理员提供一个完整的替代方案,希望在WordPress管理员中执行的任何操作,应该有一个等效的WP-CLI命令。

WP-CLI安装教程请查看:https://www.zhanzhangb.com/1664.html

扩展阅读:

宝塔面板用户切换到www用户可在root用户登陆后,使用以下命令:

sudo su - www -s /bin/bash

切换到www用户后,在WordPress安装目录中运行相应的CLI命令即可。

留下评论