# 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-hk -->