WP-CLI v0.22.0 發行説明

2016 年快樂!在我深入研究 RESTful CLI 項目之前,我想您可能會喜歡一個新的 WP-CLI 版本。

使用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 文件,而不是對數據庫進行更新 [#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 配置文件添加.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 和 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 上查看所有已解決問題的完整列表。

文章目錄



發表評論

發表回覆

您的郵箱地址不會被公開。 必填項已用 * 標註