# WP-CLI v0.22.0  發行說明

*Published:* 2016-01-07
*Author:* 殼殼蟲

2016年快樂！在我深入研究RESTful CLI專案之前，我想您可能會喜歡一個新的WP-CLI[2](#8ec4fc4c)版本。

使用`wp cli update`來安裝v0.22.0，包括137個已解決的問題和拉取請求。以下是新的功能。

### 搜尋替換，用於愛和利潤

上個月，Pantheon慷慨贊助了15小時的我的時間，以解決一些長期積壓的錯誤，並進行一些重大增強。

讓我們從好訊息開始：

- 效能提升！現在，WP-CLI只執行一次MYSQL LIKE語句，而不是每1000行執行一次 \[#2304\]。在一個大約350萬行的帖子meta表中，其中有75,610行受影響，這一更改將執行時間從734.926秒提高到225.509秒（快了3.3倍）。
- 使用`--export=<filename>`引數來建立轉換後的資料的SQL[3](#57d33455)檔案，而不是對資料庫進行更新 \[#2254\]。當您希望為新環境準備資料庫而無需匯入然後執行搜尋替換時，這是一個有用的功能。
- 可以在表名中使用萬用字元 \[#2233\]。使用`wp search-replace <old-string> <new-string> '*meta*'`來搜尋替換隻是帶有`meta`的表。注意：模式需要用引號引起來，因為`*`在Bash中是一個特殊字元。

我還解決了許多搜尋替換錯誤和小的增強功能：

- 預設情況下，在替換序列化資料內部時遞迴物件 \[#2222\]。除其他功能外，這可以確保主題修改按預期進行轉換。您可以使用`--no-recurse-objects`來停用此行為。但是，如果您停用了此行為，我希望能聽到您的意見。我認為這是一個可以在以後刪除的不必要選項。
- 正確轉義用於搜尋或替換字串的引號 \[#2230\]。
- 告知使用者在執行搜尋替換過程後重新整理持久物件快取 \[#2236\]。
- 當替換字串與搜尋字串相同時，提前退出 \[#2235\]。
- 在使用`--verbose`執行搜尋/替換時指示執行時間 \[#2242\]。
- 當沒有需要替換時，防止不必要的呼叫`$wpdb->update()` \[#2245\]。
- 在正規表示式模式下去除不必要的`REGEXP`查詢 \[#2305\]。

### 受支援版本的更改

WP-CLI的最低受支援的WordPress版本現在是3.7 \[#2261\]。

我們還正式支援PHP 7 \[#2330\]。

### v0.22.0中的其他一切

`wp scaffold (plugin|plugin-tests)`的改進：

- 透過僅在分支的初始構建失敗時傳送電子郵件通知來減少Travis的噪音 \[#2194\]。
- Plugin的header遵循WordPress的PHPDoc標準 \[#2197\]。
- 向PHPUnit[1](#d2411729)配置檔案新增`.dist`副檔名，以允許使用本地配置檔案進行覆蓋 \[#2247\]。
- 解析`readme.txt`以查詢用作Travis測試版本的WordPress版本 \[#2255\]。
- 包括預設的`.gitignore` \[#2297\]。

現有命令的新標誌：

- `wp core update --minor`僅執行小更新 \[#2256\]。
- `wp (post|comment|user) meta delete <id> --all`刪除給定物件上的所有後設資料值 \[#2265\]。
- `wp core update-db --dry-run`檢視是否需要升級資料庫 \[#2293\]。
- `wp media regenerate --only-missing`用於在包含大量影像的站點上提供更快的效能，其中僅有少量缺少大小的影像 \[#2292\]。
- `wp cron event run --all`執行所有已註冊的cron事件 \[#2323\]。
- `wp site empty --uploads`清空站點並刪除其上傳目錄\[#2339\]。
- `wp core install --skip-email`在沒有電子郵件通知的情況下安裝\[#2345\]。
- `wp transient (get|set|delete) --network`用於管理站點短時儲存\[#2351\]。

框架增強：

- 在比較WordPress版本時引入`wp_version_compare()` \[#2237\]。SVN[4](#aff7793b)和Git標籤在`$wp_version`中包括`-src`，這是`version_compare()`不喜歡的。
- 在設定時推遲使用`$PAGER`環境變數\[#2264\]。
- 向專案引入`composer.lock`檔案，以修復對特定雜湊的依賴關係\[#2280\]。
- 透過全域性化wp-config.php中定義的任何新變數，因為它們預計是全域性的\[#2318\]。
- 如果缺少`--require=<file>`，則指定缺失檔案引用位置的上下文，以便更容易進行除錯\[#2336\]。
- 使用`mustangostang/spyc`而不是捆綁我們自己的副本\[#2350\]。`Spyc`類仍然在全域性名稱空間中可用。
- 引入`WP_CLIUtilsget_temp_dir()`以獲取更安全的臨時目錄\[#2353\]。

其他命令的改進：

- 在建立自定義taxonomy時包括`not_found`標籤\[#2196\]。
- 允許在檔名中不包含`.zip`的情況下安裝遠端外掛檔案\[#2193\]。
- 在將使用者新增為超級管理員時，警告如果使用者已經是超級管理員\[#2202\]。
- 在`wp import`中使用`WP_CLI::log()`而不是`WP_CLI::line()`，因此尊重`--quiet`標誌\[#2234\]。
- 為萬用字元表(`wp db tables`)（例如`*meta*`），`--all-tables-with-prefix`和`--format=csv`增加支援\[#2250\]。
- 在安裝外掛或主題時，資源未找到時改進錯誤訊息\[#2253,#2267\]。
- 使用`--filename_format=<format>`支援自定義`wp export`檔名格式\[#2230\]
- 假設在`wp install`期間出現資料庫錯誤，這是安裝失敗，並相應地報告\[#2337\]。
- 在`wp scaffold plugin`時在執行時公開外掛標頭詳細資訊\[#2338\]。
- 在`wp scaffold package-tests`中包括`ci/behat-tags.php`檔案\[#2342\]。

全面的錯誤修復：

- 在檢測到WP但未安裝時允許`help`提前執行(例如，`wp core config --help`) \[#2190\]。該錯誤是在v0.20.0中引入的。
- 在建立child theme時，為子主題的enqueue函式建立父主題slug的安全版本\[#2203\]。以前，如果父slug包括破折號，將生成無效的enqueue函式。
- 在查詢`wp-config.php`並啟用PHP的`open_basedir`時抑制錯誤通知\[#2211\]。
- 修復了`WP_CLILoggersQuiet`中的錯誤通知\[#2210\]。
- 在custom post type scaffolding中修復了`all_items`標籤\[#2213\]。
- 確保在下載夜間WP-CLI Phar構建時，實際下載的是夜間版本，而不是重定向\[#2214\]。
- 在安裝multisite時，將`upload_space_check_disabled`設定為`1`。這與新安裝上的core行為相符。
- 在影像重生失敗時提供更有幫助的訊息\[#2239\]。
- 在刪除父項時正確更新選單子項父項\[#2262\]。
- 在使用`wp rewrite structure`時停止在重寫規則字首中新增`index.php` \[#2279\]。
- 在`wp transient set`簡介中修復拼寫錯誤\[#2282\]。
- 為非美國英語區域恢復`wp core verify-checksums`支援\[#2287\]。該錯誤是在v0.21.0中引入的。
- 在可用時，切換到readline庫，以更好地支援使用`--prompt`的箭頭鍵\[#2325\]。
- `WP_CLIFormatter`在物件上適當檢查null值\[#2322\]。
- 在`wp media import`中，使用主機而不是方案來確定檔案是遠端還是本地，以支援Windows\[#2324\]。
- 確保在指定無效的`--version=<version>`的情況下更新外掛時不會刪除外掛\[#2346\]。

該版本的貢獻者包括：2ndkauboy, coreyworrell, danielbachhuber, davidleach, duncanjbrown, ernilambar, fjarrett, gilbitron, greg-1-anderson, iandunn, jjeaton, modelm, rodrigoprimo, ryanshoover, stevector, szepeviktor, tristanpenman, x1024。

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

### 名詞解釋

1. PHPUnit：PHP 語言的單元測試框架 [↩︎](#d2411729-link)
2. WP-CLI：WordPress 的命令列管理工具 [↩︎](#8ec4fc4c-link)
3. SQL：結構化查詢語言，用於操作關係型資料庫 [↩︎](#57d33455-link)
4. SVN：Subversion 版本控制系統，WordPress 管理程式碼的工具 [↩︎](#aff7793b-link)
<!-- WP Chinese Converter Full Page Converted. Target Lang: zh-tw -->