使用WP-CLI从命令行管理WordPress网站
WP-CLI是WordPress的命令行界面。 在本教程中,我们将研究使用WP-CLI进行基本的WordPress网站管理。
WP-CLI如何使您受益
- 从命令行更有效地管理WordPress任务
- 为您节省大量的点击次数,页面加载量和时间。
- 做您在图形化WordPress仪表板中无法做的事情
- 使用Cron自动化任务
如何在Linux服务器上安装WP-CLI
SSH登录到Linux服务器并下载 wp-cli.phar
存档使用 curl
要么 wget
。
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
要么
wget https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
然后使用以下命令验证其是否有效:
php wp-cli.phar --info
如果工作正常,您将看到类似下面的内容:
PHP binary: /usr/bin/php PHP version: 7.3.8 php.ini used: /etc/php/php.ini WP-CLI root dir: phar://wp-cli.phar/vendor/wp-cli/wp-cli WP-CLI vendor dir: phar://wp-cli.phar/vendor WP_CLI phar path: /home/linuxbabe WP-CLI packages dir: WP-CLI global config: WP-CLI project config: WP-CLI version: 2.3.0
接下来,我们向档案文件添加可执行权限,将其移至 /usr/local/bin/
并将其重命名为 wp
。
chmod +x wp-cli.phar sudo mv wp-cli.phar /usr/local/bin/wp
现在我们可以输入 wp
代替 php wp-cli.phar
。
wp --info
当新版本的WP CLI出现时,您可以运行以下命令进行更新。
sudo wp cli update
如何使用WP-CLI
当运行wp-cli命令来更改WordPress网站的文件和目录时,您需要以Web服务器用户身份运行该命令,该用户通常名为 www-data
, apache
, 要么 nginx
。
如果没有为sudo指定选项,它将以root用户身份运行命令。 要以其他用户身份运行命令,请使用 -u
如下所示的选项。
sudo -u www-data wp plugin update --all
上面的命令将运行 wp plugin update --all
命令为 www-data
用户。 不更改文件或目录而仅获取信息的wp-cli命令可以以普通用户身份运行。
需要注意的另一件事是,在运行任何wp-cli命令之前,您需要将工作目录更改为WordPress安装目录。
cd /var/www/wp-site/
有了这些,我们来看看如何使用WP-CLI管理WordPress核心,WordPress主题和WordPress插件。
注意:如果看到以下错误
PHP Fatal error: Uncaught Error: Call to undefined function add_filter()
然后,您可能需要注释掉 add_filter
发挥作用 wp-config.php
WP-CLI的文件。
管理WordPress核心
检查WordPress核心版本。
wp core version
显示WordPress核心的其他信息。
wp core version --extra
将WordPress核心更新到最新版本。
wp core update
将WordPress核心更新为最新的次要版本,而不是主版本。
wp core update --minor
检查MD5哈希
wp core verify-checksums
管理WordPress数据库
更新WordPress数据库
wp core update-db
优化数据库
wp db optimize
维修资料库
wp db repair
管理WordPress主题
列出已安装的主题
wp theme list
搜索主题
wp theme search <theme_name>
安装主题
wp theme install <theme_name>
从指定的URL安装主题。
wp theme install http://example.com/theme_name.zip
活跃主题
wp theme active <theme_name>
更新主题
wp theme update <theme_name>
更新所有主题
wp theme update --all
卸载主题
wp theme uninstall <theme_name>
管理WordPress插件
列出WordPress上安装的所有插件。 的 名称 栏位向您显示 蛞蝓 由您的插件使用。
wp plugin list
列出具有可用更新的插件。
wp plugin list --update=available
显示输出 json
要么 csv
格式。
wp plugin list --format=json wp plugin list --format=csv
从WordPress插件目录安装插件。
wp plugin install <plugin_name>
从URL安装插件。
wp plugin install http://www.example.com/plugin_name.zip
激活插件
wp plugin activate <plugin_name>
停用插件
wp plugin deactive <plugin_name>
卸载插件
wp plugin uninstall <plugin_name>
更新插件
wp plugin update <plugin_name>
更新所有插件
wp plugin update --all
如果您的服务器安装了多个WordPress,则您可能需要运行以下命令以允许 www-data
用户写 /srv/http/
目录,因为WP-CLI会将下载的文件缓存到该目录,因此WP-CLI在更新下一个WordPress安装时不必再次下载相同的文件。
sudo setfacl -R -m "u:www-data:rwx" /srv/http/
备份WordPress数据库和文件
运行以下命令来备份数据库。 请注意,将SQL文件放置在网站根目录下是非常不安全的。 而是将其放在其他位置,例如您的主目录。
wp db export ~/backup_db.sql
要备份文件,我们可以使用如下所示的旧版tar存档实用程序。
sudo tar -cpzvf ~/wp-file-backup.tar.gz /var/www/wp-site/
自动更新WordPress,主题和插件的简单Shell脚本
我们可以编写一个使用WP-CLI来自动更新WordPress核心,主题和插件的shell脚本。 我发现这种方式比使用更稳定 add_filter
自动更新WordPress的功能。 创建一个 .sh 根用户主目录中的文件。
sudo nano /root/auto-update-wp.sh
将以下行放入文件中。 您可能还想自动更新WP-CLI本身,因此添加 wp cli update
到这个文件。
#! /bin/bash cd /var/www/wp-site/ sudo -u www-data wp core update --quiet sudo -u www-data wp core update-db --quiet sudo -u www-data wp theme update --all --quiet sudo -u www-data wp plugin update --all --quiet wp cli update --quiet --yes exit
请注意,我使用 sudo -u
更改用户。 许多人认为 su
在 sudo
手段 super user
。 实际上,这意味着“切换用户并做某事”。 默认情况下,它切换到root。 的 --quiet
标志将禁止显示信息性消息,并且 --yes
标记将提供对问题的肯定回答,是否有可用的WP CLI新稳定版本。
保存脚本并添加可执行权限。
sudo chmod +x /root/auto-update-wp.sh
然后在根用户的crontab中添加一个新条目。
sudo crontab -e
以下条目将在每天凌晨4点检查并执行自动更新。
0 4 * * * bash /root/auto-update-wp.sh
设置PATH变量是一个好主意,以便cron可以找到要运行的命令。 将以下行放在crontab文件的开头。
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
如何在仪表板中禁用WordPress更新通知
如果您在Cron中配置了自动更新,则可能要在WordPress仪表板中禁用更新通知。 只需将以下代码添加到 functions.php
文件放在主题文件夹下,您就完成了。
//disable WordPress core update notification add_action('after_setup_theme','remove_core_updates'); function remove_core_updates() { if(! current_user_can('update_core')){return;} add_action('init', create_function('$a',"remove_action( 'init', 'wp_version_check' );"),2); add_filter('pre_option_update_core','__return_null'); add_filter('pre_site_transient_update_core','__return_null'); }
搜索并替换为WP CLI
您可以使用WP CLI批量替换WordPress数据库中的文本模式。 例如,如果将WordPress从HTTP迁移到HTTPS,则可能需要通过运行以下命令将所有HTTP链接替换为HTTPS。
wp search-replace 'http://yourdomain.com' 'https://yourdomain.com' --precise --recurse-objects --all-tables
更新资料
从5.5版开始,WordPress允许您将插件和主题设置为在WordPress管理界面中自动更新或不自动更新。
包起来
这只是一个介绍。 WP-CLI的扩展性很强,可以做更多的事情。 与往常一样,如果您发现此帖子有用,请订阅我们的免费新闻通讯。 您也可以在Google +,Twitter或喜欢我们的Facebook页面上关注我们。