點我分享

今天我要介紹一個很實用的 WordPress 工具,很適合一些開發者常常需要下指令操作的狀況,可以為你節省一些時間,這個工具叫做 WP-CLI。下面的介紹我會介紹一些時常用到的指令集,並做一些解釋。

請支持《ヤンヤン的研究之路》原創文章。原文標題:WP-CLI – 便於工程師管理 WordPress 的工具 | WordPress 技巧,原文網址:https://www.yannyann.com/2019/03/wp-cli-very-easy/

WP-CLI 是一個由 php 程式語言寫出來的 WordPress 管理指令器,可以操作 WordPress 的安裝、資料庫寫入、設定、抓取資料、更新文章等等所有你想得到的事情,而有些外掛例如 Elementor 頁面編輯器、Woocommerce 電商外掛等等也都有開發 WP-CLI 的指令,讓大家可以透過系統端的操作,不必手動點很多按鈕就可以操作 WordPress。

如果閣下在其他網站看到本站的文章被複製貼上,麻煩閣下到「https://www.yannyann.com/2019/03/wp-cli-very-easy/」文章末端的 Facebook 留言處告訴我,並請您附上轉貼的網站,萬分感激!

首先安裝 PHP 程式

不過要使用 WP-CLI 的話,因為他是使用 PHP 語言寫成的東西,當然要事先安裝 PHP 在作業系統才可以使用喔!如果你是使用 Ubuntu 18.04 以上的版本的話,請輸入:

sudo add-apt-repository -y ppa:ondrej/php
sudo apt-get -qq install php7.3 php7.3-common php7.3-dev

這裡我直接使用當前 PHP 最新的版本 7.3。

安裝 WP-CLI 並使用

接著如果你已經架設好 Apache、Caddy 或是 Nginx 等 Web server 的話,以及資料庫 Server 例如 MySQL 或是 MariaDB,先切換到你的網站根目錄下操作,或是在接下來的指令當中加入「–path=」參數指定到你的 WordPress 程式所在地。

如果你是在 root 權限在操作,也請記得加上「–allow-root」,因為 WP-CLI 預設會鎖定不讓 root 帳戶使用,而我個人偏好這個方式;或是在指令前面加入「sudo -u user 」以其他使用者權限執行。

而如果想要讓指令不印出,達成背景操作的話,多加上「–quiet」參數即可。

首先安裝 WP-CLI。

wget https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar -O /usr/local/bin/wp
chmod a+x /usr/local/bin/wp

如果要更新 WP-CLI 的話也是一樣的操作方式。

我個人不建議把 wp-cli.phar 主程式放在「/usr/local/bin/」以外的目錄,我測試好幾次之後,似乎該程式在相對位置上有一些 Bug,會造成執行失敗。

切換到 WordPress 的根目錄之後,開始下載安裝 WordPress。

wp core download --version=5.1 --force --allow-root

這個版本號請參考美國英文版的 WordPress 為主,如果要直接下載其他語言的版本可以多加上「–locale=」,例如日文就是「ja」,繁體中文就是「zh_TW」。不過我個人不建議直接下載繁體中文版,因為繁體中文版官方的版本號只有列出主要大版本號,小改版都沒有列出,會造成安裝上的失敗。

請參考:
1. Releases | WordPress.org

接著我們要把 WordPress 的資訊直接寫入資料庫。這裡你需要備齊資料庫登入的帳號密碼,資料庫名稱(這些請事先在資料庫裡面建立好)。另外加入資料庫前綴的資訊「–dbprefix=」,這個可以自行輸入,但關係到安全性,不要隨便外露。

wp core config --dbname=databasename --dbuser=youraccountinmysql --dbpass=passwdofyouraccountinmysql --dbhost="localhost" --dbprefix="wp_" --allow-root --force --extra-php <<PHP
//*<em>insert your code</em>//
PHP

而後面的「–extra-php <<PHP」可以讓你在 wp-config.php 事先插入你需要的設定,最後記得換行後用「PHP」做結尾。

接著正式把資料寫入資料庫當中。這裡需要你的一些網站資訊,像是「網站網址」(url),注意後面不需要「/」結尾,會造成錯誤。WordPress 的使用者名稱和密碼、你的 Email。

wp core install --url="https://www.example.com" --admin_user=wpaccount --admin_password=passwdofwpaccount --admin_email=youremail --allow-root

這裡要提醒一下,「wp db create –allow-root」指令在這裡就不需要了,因為會自動創建好 WordPress 的資料表並寫入資料進去資料庫裡面。

另外,如果你的 WordPress 後台網址(WordPress siteurl)和網站的根目錄(website url)不同,請記得更新一下設定。

wp option update siteurl "https://www.example.com/wpwhereat" --allow-root

記得這裡的網站後台網址要加入「 “” 」雙引號才不會出錯。

安裝完成之後,接著就安裝繁體中文的語言包到 WordPress 裡面,請記得加上「–activate」參數在安裝完成繁體中文套件包之後直接啟用。所以在一開始時雖然是安裝英文版的 WordPress,但是可以在這裡切換,避免掉安裝的錯誤。

wp language core install zh_TW --activate --allow-root

如過要更新 WordPress 的話,給他下更新指令。

wp core update --allow-root

安裝刪除佈景主題和外掛

另外是安裝或刪除外掛或佈景主題的指令。如果是外掛,請輸入:

wp plugin install wp-file-manager --activate --allow-root

加入「–activate」的話,會在安裝完外掛之後啟用外掛。不要啟用外掛就去除掉即可。

如果要從本地來源的 zip 檔案安裝,則可以這樣寫:

wp plugin install /path/to/plugin.zip --activate --allow-root

刪除外掛的話就這樣做。

wp plugin delete akismet --allow-root

這些外掛的名稱,如果不確定的話,可以到「wp-content/plugins」裡面看各個外掛資料夾的名稱就知道了,或是可以下「wp plugin search」指令查詢。

而佈景主題的話,跟外掛基本上是一樣的概念。刪除就像是這樣子。

wp theme delete twentyseventeen --allow-root

安裝的話就像是這樣子。

wp theme install twentyseventeen --activate --allow-root

也可以是 zip 檔案。

wp theme install /path/to/theme.zip --activate --allow-root

加入「–activate」的話,會在安裝完外掛之後啟用佈景主題。不要啟用佈景主題就去除掉即可。

另外另外,佈景主題如果你有打算要做自訂的動作,在安裝完並啟用佈景主題之後,可以這樣子設定。

wp scaffold child-theme childtheme --parent_theme=basetheme --author=you --allow-root

如果要更新所有外掛、佈景主題、WordPress 核心程式的語言套件,可以下這個指令。

wp language core update --allow-root

更改 wp-config.php 的設定或是 WordPress 設定

接著,我們可能想要更新一些 wp-config.php 當中的設定,可以使用「wp config set key 」指令做到。例如我們想要讓 Debug 模式啟動的話。

wp config set WP_DEBUG true --raw --allow-root

結果會在「wp-config.php」寫入這一行。而預設的 wp-config.php 裡面會寫入「define(‘WP_DEBUG’, false);」,但是加入「–raw」參數的話,不管這一行的狀況是被註解還是已經存在,都會強迫更新成下面這樣子。

define('WP_DEBUG', true);

如果是要更改到資料庫裡面的資料,要改變「options」的話,可以用這個指令「wp option update」。例如要更新時區成為台北的話。

wp option update timezone_string "Asia/Taipei" --allow-root

如果是更改文章的網址結構,可以這樣下命令。

wp rewrite structure '%postname%' --allow-root

登入 WordPress 後,讓觀看網站時的上方控制列(admin bar)消失。

wp option update show_admin_bar_front false --allow-root

至於大家一定會有一些疑問,這些要更新變更的 key 值要去哪裡找呢?其實是按照資料庫裡面每筆資料「meta_key」命名的方式去對應的喔!所以去資料庫找「meta_key」,來更新對應的「meta_value」。

取代字串

wp search-replace 'oldstring' 'newstring' --allow-root

常常用在更新網址的時候。

媒體資源操作

重新產生圖片壓縮檔案應用於響應式網頁的話。

wp media regenerate --yes --allow-root

如果不想要刪除舊圖片的話加上「–skip-delete」參數吧。

如果想要從該主機上匯入圖片。

wp media import /path/to/image.jpg --allow-root

建立或是更新文章

最後一個主要的部分,我想大家會關心「頁面」(Pages)和「文章」(Articles)的內容、標題等等。如果是創建文章的話:

wp post create --post_type='page' --post_title="Home" --post_status="publish" --allow-root

記得加入「–post_status」參數,設定文章的狀況為發佈(publish)。

至於其他文章的發布模式請參考如下。

1. Post Status | WordPress.org

如果是更新文章內容。

wp post update 1 --allow-root --post_title="your title" --post_content="your content"

這裡你要知道文章的數字編號是多少才能操作。

WP-CLI 是可以擴充的

其實指令還有很多,這裡只是列出一些常用到的東西,而且有各種的排列組合,我無法一一都列出所有的作用,如果要查詢,可以用官方文件或是他們在 Github 上面的專案。

請參考:
1. WP-CLI | Developers-WordPress.org
2. WP-CLI | Developers-WordPress.org
3. WP-CLI | Github

WP-CLI 指令集是由各個專案組合在一起的套件指令庫,因此是可以擴充或部分更新的,但通常只需要知道怎麼操作就好。但有遇到問題的話,請盡量到各個 WP-CLI 小專案裡面發表 issue。

請支持《ヤンヤン的研究之路》原創文章。原文標題:WP-CLI – 便於工程師管理 WordPress 的工具 | WordPress 技巧,原文網址:https://www.yannyann.com/2019/03/wp-cli-very-easy/
請參考:
1. wp (cache|transient) *
2. wp checksum *
3. wp config *
4. wp core *
5. wp cron *
6. wp db *
7. wp embed *
8. wp (eval|eval-file)
9. wp export
10. wp (option|post|comment|user|term|site) *
11. wp i18n
12. wp import
13. wp language
14. wp media *
15. wp package *
16. wp (plugin|theme) *
17. wp rewrite
18. wp (role|cap) *
19. wp scaffold *
20. wp search-replace
21. wp server
22. wp shell
23. wp super-admin *
24. wp (widget|sidebar) *

而一些公司會個人開發的外掛也有提供 WP-CLI 操作指令庫,但是這個要再安裝他們的外掛之後才能使用。

如果閣下在其他網站看到本站的文章被複製貼上,麻煩閣下到「https://www.yannyann.com/2019/03/wp-cli-very-easy/」文章末端的 Facebook 留言處告訴我,並請您附上轉貼的網站,萬分感激!
請參考:
1. Elementor 外掛:Elementor | WP-CLI
2. WP Rocket 外掛:WP Rocket | WP-CLI
3. WP Redis 外掛:WP Redis | WordPress 外掛 | WordPress.org
4. Woocommerce 外掛:Woocommerce | WordPress 外掛 | WordPress.org
參考資料:

常用指令整理
1. wp-cli コマンド一覧 - Qiita
官方文件
2. Installing – WP-CLI — WordPress
3. wp core download | WordPress Developer Resources

稍微詳細的操作過程
4. [WordPress] WP-CLI 常用初始化專案的指令 | 一介資男
5. WP-CLIの使い方
6. Install WordPress Using WP-CLI on Ubuntu 18.04
7. Automated WordPress Installation With Bash - WP CLI | Indigo Tree

This Post Has 6 Comments

    1. ヤンヤン

      I am happy to hear these! Thank you so much.
      These days I am keeping doing some work on my website and learning Machine Learning, I will release new post soon

  1. Kathi Sells Parvo

    Hi there! Quick question that's entirely off topic.
    Do you know how to make your site mobile friendly?
    My blog looks weird when browsing from my iphone4.
    I'm trying to find a theme or plugin that
    might be able to resolve this issue. If you have any recommendations, please share.
    Cheers!

    1. ヤンヤン

      Hello, I already see your website on iPhone screen tester.
      but it has big relationship with design of theme, I have nothing to do with this case.
      but maybe you can find some plugin like mobile zoom plugin, it would make some works!
      Cheers

  2. I'll right away take hold of your rss feed as I
    can not to find your email subscription hyperlink or newsletter service.
    Do you have any? Kindly let me realize in order that I may
    just subscribe. Thanks.

    1. ヤンヤン

      Hello, the subscription is at the bottom of right sidebar.

發佈留言

關閉目錄
×

Cart