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 上檢視所有已解決問題的完整列表。
發表回覆