# WP-CLI v0.25.0 發行說明

*Published:* 2016-10-25
*Author:* 殼殼蟲

釋出日快樂！

今天，我很高興為您帶來 WP-CLI[4](#8dbbd2f3) v0.25.0。檢視新發布的路線圖，瞭解即將釋出的版本和產品重點的詳細資訊（提示：未來 WP-CLI 將不再支援 PHP 5.3）。

讓我們深入瞭解吧。

### 與 WordPress 4.7 相容性

WordPress 4.7 引入了一個新的 `WP_Hook<sup class="fn" data-fn="10b7c7c9"><a href="#10b7c7c9" id="10b7c7c9-link">6</a></sup>` 實現，用於註冊和執行動作和過濾器。由於 WP-CLI 擁有自己的 `WP_CLI::add_wp_hook()`，它錯誤地訪問了全域性的 `$wp_filter`，即使 `add_filter()` 函式可用，WP-CLI 在某些情況下可能會致命錯誤。現在 WP-CLI 在適當的時候呼叫 `add_filter()`。

**重要的是，由於這些更改的性質，WP-CLI 版本 0.25.0 之前將與 WordPress 4.7 不相容。**

檢查此拉取請求中的更改。

### 包索引中的新包

WP-CLI 社群一直在積極建立新工具供您使用（並回饋）：

- aaemnnosttv/wp-cli-login-command – 使用安全的無密碼魔術連結登入到 WordPress。
- alessandrotesoro/wp-cli-helpscout-docs-parser – 提取 Helpscout 檔案文章和類別以構建離線檔案。
- alessandrotesoro/wp-usergen-cli – 為測試目的生成隨機使用者。
- anhskohbo/wp-cli-themecheck – 在 WP-CLI 中執行 Themecheck。
- BeAPI/wp-cli-light-db-export – 允許您匯出大型資料庫的所有表，但不包括所有資料。
- binarygary/db-checkpoint – 將您的資料庫視為影片遊戲中的儲存點。
- brightoak/wp-cli-envoyer – 透過 WP-CLI 呼叫 Envoyer 部署。
- getshifter/wp-cli-shifter – 為 Shifter 匯入/匯出您的 WordPress 站點。
- eriktorsner/wp-checksum – 驗證主題和外掛的校驗和。
- iandunn/wp-cli-plugin-active-on-sites – 列出在 多站點 網路中啟用了給定的 外掛 的所有站點。
- markri/wp-sec – 檢查 wpvulndb.com 上的 WordPress CVE[7](#16b0c43a) 安全問題。
- mattgrshaw/wp-installer – 安裝和解除安裝 WordPress 的簡單命令。
- pressbooks/pb-cli – Pressbooks 的一套 wp-cli 命令。
- runcommand/assign-featured-images – 為支援縮圖的帖子分配特色圖片。
- runcommand/manifest – 生成 WordPress 配置的概述，以更高階的理解 WordPress 內部的運作情況。
- rxnlabs/wp-composer – 使用 Composer[1](#046b1c7a) 的強大功能管理您的 WordPress 網站依賴項。
- trendwerk/faker – 使用 WP-CLI 建立虛假文章資料。
- trepmal/blog-extractor – 從多站點中提取單個部落格。
- trepmal/wp-revisions-cli – 管理修訂版本。
- welaika/wp-cli-db2utf8 – 將新 WP 安裝的資料庫編碼降級為 UTF8。

使用 `wp package install <package-name>` 安裝其中任何一個（其中 `<package-name>` 通常是 `<user>/<repo>`）。當您這樣做時，請感謝作者！

### 安裝 WP-CLI 包的更多方式

雖然我們希望看到您的包在包索引中列出，但我們意識到您可能無法這樣做。現在，`wp package install` 支援安裝任意 Git URL[10](#b852cc95) \[#3482\]、`.zip` 檔案 \[#3485\] 或目錄路徑 \[#3484\] 作為包。

```
$ wp package install git@github.com:runcommand/doctor.git
$ wp package install https://github.com/runcommand/doctor.zip
$ wp package install doctor

```

（doctor 是來自 runcommand 的第二個高階 WP-CLI 命令）

- Git URL 被視為 VCS 儲存庫，並克隆到 `~/.wp-cli/packages/vendor`。
- ZIP 存檔（遠端和本地）被解壓到 `~/.wp-cli/packages/local`，並作為路徑儲存庫新增。
- 本地目錄路徑被新增為路徑儲存庫，這意味著 Composer 建立到現有目錄路徑的符號連結。如果您提供的目錄被刪除，安裝將會中斷。

### 0.25.0 中的其他更改

新命令：

- `wp db check` – 使用預設的 `--check` 選項執行 `mysqlcheck` \[#3332\]。
- `wp site option *` – 用於管理 WordPress 站點選項的 CRUD[5](#766d6052) 命令 \[#3386\]。
- `wp user session *` – 用於管理使用者會話的 CRUD 命令 \[#3307\]。

命令改進：

- `wp cli update`: 
    - 引入 `--stable` 以安裝或重新安裝最新的穩定版本 \[#3430\]。
- `wp core config`: 
    - 向生成的 `wp-config.php` 新增註釋，以更好地匹配由 WordPress core 提供的版本 \[#3312\]。
- `wp core download`: 
    - 保留 `--version` 引數的大小寫以正確處理預釋出版本 \[#3283\]。
    - 確保 `wp core download --version=latest` 生成正確版本的快取金鑰 \[#3467\]。
- `wp core language update`: 
    - 修復關於變數引用的嚴格標準錯誤 \[#3380\]。
    - 允許在設定為 `en_US` 為區域設定時更新語言包 \[#3397\]。
- `wp core multisite-(install|convert)`: 
    - 在不能插入到 `wp-config.php` 時發出警告，而不是在末尾錯誤地插入 \[#3272\]。
    - 在插入的常數週圍包括足夠的垂直間距 \[#3267\]。
- `wp core update-db`: 
    - 確保 `wp core update-db --network --dry-run` 實際上是乾淨的 \[#3347\]。
- `wp core version`: 
    - 在 `wp core version --extra` 中顯示預設的核心語言 \[#3221\]。
- `wp import`: 
    - 在 WXR[11](#35521d67) 匯入進度指示器中指示當前檔案，以傳達總數是當前檔案的總數，而不是所有檔案的總數 \[#3270\]。
- `wp media regenerate`: 
    - 新增一個簡單的進度指示器 \[#3407\]。
- `wp option list`: 
    - 新增 `--no-transients` 標誌以忽略瞬態 \[#3452\]。
    - 新增 `--exclude=<exclude>` 引數以列出不包括特定模式的選項 \[#3455\]。
- `wp package install`
    - 在安裝依賴包時顯示包依賴詳細資訊 \[#3418, #3425\]。
- `wp package uninstall`
    - 在解除安裝包時刪除包的依賴項 \[#3343\]。
    - 在解除安裝時正確分配 `$composer_backup` \[#3399\]。
- `wp plugin install`: 
    - 從為基於 Github 的 ZIP 建立的目錄中刪除分支名稱 \[#3314, #3451\]。
- `wp scaffold plugin-tests`: 
    - 在 CircleCI 上使用特定於 Trusty 的 PHP 版本 \[#3359\]。
    - 在 CircleCI 上使用正確的預設使用者來執行 MySQL \[#3457\]。
    - 根據 PHP 版本在 Travis 上使用最新版本的 PHPUnit[2](#6282d7cc) \[#3463\]。
    - 將 WordPress Coding Standards 新增到新建立的外掛中 \[#3472\]。
- `wp search-replace`: 
    - 確保引用表以支援所有允許的字元 \[#3318\]。
    - 當未定義 `export_insert_size` 時防止錯誤通知 \[#3357\]。
    - 如果由於某種原因 SQL[8](#5530dde7) 引發錯誤，回退到 PHP \[#3387\]。
- `wp server`: 
    - 支援傳遞自定義的 `.ini` 檔案來配置伺服器 \[#3330\]。
- `wp site create`: 
    - 在建立新站點時，使用 `get_blog_details()` 來獲取站點 URL，以確保顯示正確的 URL \[#3416\]。
- `wp site empty`: 
    - 確保整個上傳目錄為空 \[#3400\]。
- `wp theme install`: 
    - 在安裝 子主題 時正確安裝父主題 \[#3301\]。
- `wp transient`: 
    - 合併`wp transient delete-all`和`wp transient delete-expired`為`wp transient delete`的標誌\[#3389\]。
- `wp user create`: 
    - 當建立使用者時，防止傳送電子郵件通知，因為只有在提供`--send-email`時才應傳送電子郵件通知\[#3331\]。
- 框架增強：
- 將基於Composer的依賴項更新為最新版本\[#3257, #3429, #3460, #3468\]。
- 正確處理將例項化物件註冊為命令\[#3269\]。
- 將`ProcessRun`類拆分到其自己的檔案中\[#3377, #3422\]。
- 允許使用`WP_VERSION`環境變數執行測試套件\[#3383, #3392\]。
- 在使用WP版本時，使用`Utilsget_named_sem_ver()`時防止出現錯誤通知\[#3404\]。
- 修復了在處理`nocache_headers` filter上的`dead_db()`錯誤時出現的致命錯誤\[#3440\]。
- 為防止`wp_mail()`在使用時引發未捕獲的異常，分配了預設的`$_SERVER['SERVER_NAME']`\[#3449\]。
- 在使用別名時，忽略`wp-cli.yml`中的`url:`，因為別名完全覆蓋了使用者、URL、路徑、SSH[9](#51771b12)和http\[#3450\]。
- 在`WP_CLI::launch()`以`return_code=-1`結束時發出警告，這可能是由於使用了`--enable-sigchild`選項的自定義編譯版本的PHP引起的\[#3458\]。
- 在`wp_die()`處理程序中提供更多的詳細資訊，以在資料庫連線失敗時為終端使用者提供更多詳細資訊\[#3459\]。
- 支援將引數傳遞給`WP_CLI::do_hook()`\[#3470\]。
- 在執行別名組時記錄當前別名\[#3471\]。
- 只在存在值時檢查`options`的位置引數\[#3481\]。
- 各種Bash完成改進\[#3490, #3491, #3492\]。
- 跨全面修復錯誤：
- 為基於Debian的系統上的PHP 7定義了所有必要的依賴關係\[#3208\]。
- 確保`site --site_id= -> site --network_id=`的向後相容橋接隻影響`wp site create`\[#3227\]。
- 在驗證核心校驗和時捕獲由`RecursiveDirectoryIterator`引發的異常\[#3266\]。
- 在meta命令中傳遞斜槓資料\[#3274\]。
- 確保`composer.json`中使用了適當的WP-CLI軟體包索引URL\[#3276\]。
- 在`WP_CLIUtilsget_temp_dir()`中使用全域性名稱空間來更正`WP_CLI`的引用\[#3369\]。
- 為此版本作出貢獻的貢獻者（拉取請求、檔案和軟體包作者）：2ndkauboy、aaemnnosttv、alessandrotesoro、anhskohbo、balbuf、BeAPI、binarygary、bradp、brightoak、danielbachhuber、danilomaccioni、diggy、getshifter、eriktorsner、ernilambar、fisele、grappler、guillaumemolter、iandunn、johnbillion、jorgeatorres、kouratoras、markri、mattgrshaw、miya0001、mustafauysal、nyordanov、ocean90、petenelson、polevaultweb、pressbooks、rahulsprajapati、runcommand、rxnlabs、shulard、swissspidy、szepeviktor、taianunes、tnorthcutt、trendwerk、trepmal、veganista、welaika
- 您可以在GitHub[3](#bb71a530)上檢視已解決問題的完整列表。

### 名詞解釋

1. Composer：PHP 的依賴管理工具 [↩︎](#046b1c7a-link)
2. PHPUnit：PHP 語言的單元測試框架 [↩︎](#6282d7cc-link)
3. GitHub：全球最大的程式碼託管和協作開發平臺 [↩︎](#bb71a530-link)
4. WP-CLI：WordPress 的命令列管理工具 [↩︎](#8dbbd2f3-link)
5. CRUD：增刪改查，資料操作的四種基本功能 [↩︎](#766d6052-link)
6. Hook：WordPress 鉤子，開發者在特定位置插入自定義程式碼的機制 [↩︎](#10b7c7c9-link)
7. CVE：通用漏洞披露編號，安全漏洞的標準標識 [↩︎](#16b0c43a-link)
8. SQL：結構化查詢語言，用於操作關係型資料庫 [↩︎](#5530dde7-link)
9. SSH：安全外殼協議，用於遠端登入和管理伺服器 [↩︎](#51771b12-link)
10. URL：統一資源定位符，即網址 [↩︎](#b852cc95-link)
11. WXR：WordPress XML 匯出檔案格式 [↩︎](#35521d67-link)
<!-- WP Chinese Converter Full Page Converted. Target Lang: zh-tw -->