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