今天虾咪在【米饭粑】博客看到一个介绍使用 WP CLI 的文章,感觉非常适合明月这种喜欢在 Linux 控制台终端折腾的站长,于是就在自己的服务器你上安装了 WP CLI 试用了一番,感觉超级的棒。以前只是看过相关的介绍,没有具体的使用体验过,没有想到这么强大,忍不住就迷上了,于是特别摘录转载了,当做学习笔记分享给大家。
WP CLI 是一个强大的 PHP 命令行拓展,可以在不使用 WP后台 的情况下,仅通过命令行就可以完成 WP、主题、插件的安装、升级、使用等等,非常的强势,并且安装插件都是以最佳的姿势进行,如果一些插件需要课外进行什么复杂的设置,那么使用 WP CLI 就可以便捷的完成安装,并且规避新手随意设置权限带来的安全风险。
因为 WP CLI 的运行要求较高,所以一般只存在于高级虚拟主机和服务器中。
安装
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
php wp-cli.phar --info
chmod +x wp-cli.phar
sudo mv wp-cli.phar /usr/local/bin/wp
wp --info
可选
由于 WP-CLI 是为了安全的 WP 操作而生的,所以如果直接使用 root 账户操作,会提示不安全。所以我们要创建一个账户
useradd wp-cli
‘wp-cli’ 是换成你想要的账户名称,然后输入两次密码即可
然后我们通过 wp-cli
登入 SSH,再使用 WP 命令进行操作即可。 不过需要确保新建账户对相关 WP 目录拥有操作权限。 一般来说 /home/wp-cli/
目录是肯定有权限的。后续需要 root
权限的操作,使用 sudo 即可。
注: 如果不想新建账户,那么我们在命令后加上 --allow-root
即可。 例如:
wp --allow-root core download --version=4.9.4
运行示例
查看 WP-CLI 信息:
wp --info
PHP binary: /usr/bin/php5
PHP version: 5.6.27-0+deb8u1
php.ini used: /etc/php5/cli/php.ini
WP-CLI root dir: phar://wp-cli.phar
WP-CLI packages dir:
WP-CLI global config:
WP-CLI project config:
WP-CLI version: 0.25.0
如果之前已经存在 WP 网站,例如如下提示:
wp core update
Error: This does not seem to be a WordPress install.
Pass --path=`path/to/wordpress` or run `wp core download`.
我们在相关目录运行 wp core download
或者 --path=<path>
即可
搜索wordpress插件:
wp plugin search PLUGIN_NAME
安装wordpress插件:
wp plugin install PLUGIN_NAME
激活wordpress插件:
wp plugin activate PLUGIN_NAME
列出安装的插件:
wp plugin list
获取插件状态:
wp plugin status
WP CLI 特色
有关 WP Core 的相关命令
wp core version
: 查看 WordPress 的当前版本
wp core multisite-install
: 为 WordPress 设置多站点网络(WPMU)
wp core update
: 升级 WordPress 核心
wp core update-db
: 更新 WordPress 数据库(往往在上一行代码之后执行)
安装主题
执行 wp theme list
后将会显示一个包含有「已安装主题」、「状态」、「版本号」、「是否有可用更新」的总表。
安装主题示例
从 WordPress.org 安装 tortuga 主题 (https://wordpress.org/themes/tortuga/)
wp theme install tortuga
从本地安装主题
wp theme install /Users/pcdotfan/Desktop/tortuga.zip
从 URL 安装主题
wp theme install https://github.com/jpen365/five-hacks-for-twenty-seventeen/archive/1.0.zip
就这么轻松!
安装插件
wp plugin list
和安装主题的方法一样,仅仅是将 theme
更改为 plugin
而已。我们同样也通过实例来了解一下使用 WP CLI
安装插件(Smush
和 Custom Sidebars plugins
)的全过程。
wp plugin search smush
此条命令将返回一个从 WordPress.org 搜索得来的「smush」列表,如下图:
现在我需要安装 WP Smushit 这个插件(别名是 wp-smushit)。OK,我再找找想要的 Custom Sidebars 插件。
wp plugin search "Custom Sidebars"
找到了,custom-sidebars 就是插件的别名。只需要一行命令即可同时安装两款插件:
wp plugin install wp-smushit custom-sidebars
稍等几秒后,它们就安静地躺在后台啦!
站点维护
令 WordPress 降级至前一版本
说是降级,实际上 WP CLI 实现了「恢复至指定版本」的功能。即使 WordPress 向下兼容性做得很到位,但是也仍不能排除有例外的情况。来看下命令:
wp core update --version=4.6.1 --force
倘若你的 WordPress 正处于 4.7 版本,这一操作将直接回退到 4.6 版本的核心内容(不包括主题、插件)并删除任何 WordPress 4.7 新增的文件。注意:记得备份。
查询 & 替换
WP CLI 的查询 & 替换功能是一个亮点,当我们正准备给网站搬家(更换域名、添加 HTTPS 等)时显得尤为方便。
Check number of times string will be replaced
wp search-replace "http://olddomain.com" "http://newdomain" --dry-run
Replace old domain with new domain
wp search-replace "http://olddomain.com" "http://newdomain.com"
Update URL to https
wp search-replace "http://example.com" "https://example.com"
默认情况下,WP CLI 只会查找/替换 WordPress 自有核心的数据表。不过我们也有其他办法让它搜索其他的表:
Search and replace a custom table and core table
wp search and replace "old-string" "new-string" wp_custom_table wp_posts
Search and replace all tables, including custom tables
wp search and replace "old-string" "new-string" --all-tables
是不是省了好多 SQL 命令?
需要注意的是,你应该时刻注意自己的数据库是否有近期备份, WP CLI 的操作实际上就是对数据库进行增删改查,且不可回退。不过还好,WP CLI 有一项功能可以让你避免做出傻事—— 所提供的 –dry-run
选项类似于一个沙箱,在执行完命令后并不会真的操作数据库——而是返回一张带有更改位置及内容的表。待确定无误后再把 –dry-run
选项去掉,这样就可以确保任何修改都在可控范围内。