# WP-CLI v1.0.0  發行說明

*Published:* 2016-11-29
*Author:* 殼殼蟲

喔耶！

在過去的五年多時間裡，數百名貢獻者共同努力，為您帶來了WP-CLI[3](#c5f79ed6) v1.0.0，我今天很自豪地宣佈。

這個版本代表了很少有開源專案能夠達到的成熟水平。它也標誌著一個過渡時刻。WP-CLI 專案將把重心轉向WP-CLI軟體包生態系統，在那裡它將透過構建和鼓勵新功能作為獨立軟體包來推動創新。我們希望這種方法將促進更快的迭代和更多的創造力，並更可持續地分擔維護負擔。隨著這些社群軟體包的成功，我們將把它們的經驗帶回WP-CLI，同時修復錯誤和進行小的增強。

現在問題積壓已經清零，我個人期待著為我的自己的WP-CLI創新工作室runcommand做更多的創意。

本週去費城嗎？我將出席Post Status Publish和WCUS（儘管只到週五下午）。打個招呼吧 – 我在Twitter上是@danielbachhuber。

接下來，讓我們繼續…

### 介紹`WP_CLI::runcommand()`

`WP_CLI::runcommand()`（檔案）是從WP-CLI命令中執行WP-CLI命令的新方法。就好像`WP_CLI::run_command()`和`WP_CLI::launch_self()`成長起來、結婚並生下了完美的孩子。

使用`WP_CLI::runcommand()`，您可以：

- 啟動新的子程式（預設），或重用現有程式。
- 可選擇在錯誤時防止程式退出。
- 返回由命令生成的標準輸出（STDOUT），或所有命令執行細節（STDOUT、STDERR、return\_code）作為物件。
- 可選擇將捕獲的STDOUT解析為JSON[4](#cd3768f4)。

相關的拉取請求包括：#3605，#3619，#3621。

### 重大變更：部分批次操作失敗時使用返回碼1

某些命令支援對多個資源執行相同的操作（例如，使用`wp plugin update akismet hello`更新兩個或更多外掛）。以前，如果其中一個操作失敗（例如，plugin更新未能下載），WP-CLI將顯示警告，繼續執行，並以返回碼0退出。從v1.0.0開始，當一個或多個操作失敗時，WP-CLI將使用返回碼1。

更多背景和原因，請參見此問題。

受影響的命令包括：

- `wp media (regenerate|import)`
- `wp menu delete`
- `wp menu item delete`
- `wp plugin (install|activate|update|toggle|deactivate|uninstall|delete)`
- `wp super-admin add`
- `wp theme (install|update)`
- `wp term delete`
- `wp widget (delete|deactivate|reset)`

在您的自定義WP-CLI命令中使用`WP_CLIUtilsreport_batch_operation_results()`（檔案）更容易支援這種行為。

相關的拉取請求包括：#3584，#3583，#3582，#3585，#3586，#3588。

### 1.0.0中的其他一切

新命令：

- `wp package update` – 更新所有已安裝的WP-CLI軟體包到它們的最新版本。
- `wp scaffold theme-tests` – 為主題建立PHPUnit[2](#d7327ead)測試腳手架。

命令改進：

- `wp cache type`: 
    - 支援WP LCache作為快取型別\[#3504\]。
- `wp cli aliases`: 
    - 為更容易訪問新增`alias`子命令\[#3512\]。
- `wp cli update`: 
    - 在更新時驗證發行雜湊值\[#3515\]。
    - 在以根使用者身份執行時不再需要`--allow--root`標誌\[#3576\]。
- `wp core config`: 
    - 確保WordPress編碼標準應用於生成的wp-config\[#3496\]。
- `wp core (install|multisite-install)`
    - 預設使用隨機生成的密碼`--admin_password=<password>`，現在是可選的\[#3535，#3573\]。
- `wp core language (install|update)`: 
    - 快取語言包下載\[#3595\]。
- `wp core update`: 
    - 在`CoreUpgrader`類中使用全域性名稱空間的`WP_Error`\[#3593\]。
- `wp core update-db`: 
    - 為更新過程設定`WP_INSTALLING`常量\[#3503\]。
- `wp package install`: 
    - 在包composer.json中使用提供的版本，而不是“dev-master”\[#3519\]。
    - 向包管理器的`composer.json`新增WP-CLI版本，以優雅地處理WP-CLI版本約束\[#3603\]。
- `wp package list`: 
    - 指示有可用更新的包\[#3611，#3612\]。
- `wp post delete`: 
    - 在成功訊息中正確指示revisions立即刪除\[#3524\]。
- `wp scaffold plugin`: 
    - 在`.gitignore`和`.distignore`中忽略分發歸檔檔案\[#3520\]。
    - 在`.distignore`中忽略`circle.yml`，`.gitlab-ci.yml`和`behat.yml`\[#3599\]。
- `wp scaffold plugin-tests`: 
    - 在`install-wp-tests.sh`中檢出資料目錄，以防止在WP 4.7中出現提示\[#3571\]。

框架增強：

- 將基於Composer[1](#1aa4aeb5)的依賴項更新為最新版本\[#3498，#3525\]。
- 引入`--prompt=<assoc>`以提示特定的關聯引數，使使用者避免在bash歷史中暴露安全資料\[#3531\]。
- 新增對Cygwin附帶的PHP版本的支援\[#3591\]。

此版本的貢獻者（拉取請求、檔案和軟體包作者）：abea、anttiviljami、cobyan、danielbachhuber、diggy、ernilambar、franz-josef-kaiser、greatislander、itspriddle、miya0001、mmcev106、mopquill、ocean90、pj-dave、pkarjala、richardbuff、sommarnatt、szepeviktor、torounit

您可以在Github上檢視已解決問題的完整列表。

### 名詞解釋

1. Composer：PHP 的依賴管理工具 [↩︎](#1aa4aeb5-link)
2. PHPUnit：PHP 語言的單元測試框架 [↩︎](#d7327ead-link)
3. WP-CLI：WordPress 的命令列管理工具 [↩︎](#c5f79ed6-link)
4. JSON：一種輕量級的資料交換格式 [↩︎](#cd3768f4-link)
<!-- WP Chinese Converter Full Page Converted. Target Lang: zh-tw -->