WP-CLI v0.20.0 發行説明

Wpcli logo

儘管WP-CLI是一個成熟的項目,但我們仍然在每個版本中包含了一系列出色的改進。以下是v0.20.0中的新功能:

正則表達式,詳細的搜索替換

使用--regex標誌來進行wp search-replace,等待……使用正則表達式進行搜索和替換操作。使用--verbose標誌,您將在操作執行時看到受影響的每一列:

$ wp post get 1 --field=title
Hello world
$ wp search-replace '(Hello)s(world)' '$2, $1' --regex --verbose
...
檢查:wp_posts.post_content
0行受影響
檢查:wp_posts.post_title
1行受影響
檢查:wp_posts.post_excerpt
0行受影響
...
$ wp post get 1 --field=title
world, Hello

注意:使用--regex進行搜索替換比不使用要慢15-20倍。請確保在您的遷移計劃中考慮性能損耗,並明智地使用。

主要錯誤修復:緩存的部分升級文件偽裝成完整升級

自v0.17.0以來(拉取請求),WP-CLI錯誤地以有損的方式緩存了部分歸檔。更具體地説,部分升級的ZIP文件將與完整升級的ZIP文件具有相同的鍵進行緩存。由於文件錯誤地被緩存,隨後的完整升級將使用緩存的部分升級存檔。

如果您不能立即升級到v0.20.0,我們還發布了帶有錯誤修復(拉取請求)的v0.17.2、v0.18.1和v0.19.3。緩存密鑰也已更改,因此以前的無效WordPress存檔會被靜默忽略。

使用wp core verify-checksums來確保給定的WordPress安裝具有每個文件的正確副本。如果驗證失敗,請使用wp core download --version=$(wp core version) --force重新安裝WordPress。

WP-API CLI

我們在v0.19.0中發佈了以下聲明:

WP-API距離2.0-beta1還有幾天,將為WordPress帶來強大的新接口。不久的將來,我們將開始探索WP-CLI如何在內部使用WP-API。如果一切順利,WP-CLI可能在大版本1.0.0之前發佈一個0.x.0版本。

嗯…這是一份大膽的聲明。請關注danielbachhuber/wp-rest-cli以獲取實施進展。1.0.0仍然很可能是基於WP-API的WP-CLI,但需要進行大量工作才能實現。

有用的一行命令

有一些問題針對“如何執行X?”提出瞭解決方案,您可能也會發現它們很有幫助:

# 列出網絡中每個站點的插件
wp site list --field=url | xargs -n 1 -I % wp plugin list --url=%

# 刪除不活動的插件
wp plugin delete $(wp plugin list --status=inactive --field=name)

v0.20.0的其他更改

增強功能:

  • wp server命令已與WP-CLI捆綁在一起。使用PHP內置的Web服務器為特定的WordPress實例提供服務。
  • 通過使用wp cli update --nightly跟蹤最新的更新。在下載夜間版本時,版本後面會附加哈希值。
  • 添加了簡單的wp comment generate命令。
  • 在使用wp term generate時,將緩存失效推遲到命令的末尾。這可以提高命令的性能。
  • wp term list支持通過--term_id=<term-id>進行過濾。
  • 使用--start_id=<post-id>從給定的帖子ID開始wp export,或使用--post_type=<post-type>,<post-type>導出一組帖子類型。
  • 當在多站點上指定無效的--url=<url>時,引發有用的錯誤。以前,WP-CLI會靜默失敗,讓用户對為什麼命令無法運行感到困惑。
  • 使用wp role --clone=<role>從另一個角色創建新角色。
  • 使用--format=summary獲取一行消息,用於wp (plugin|theme) update
  • 不再使用wp_download_language_pack(),因此可以在設置DISALLOW_FILE_MODS常量的情況下安裝語言。

錯誤修復:

  • wp term generate嘗試在後續執行中生成唯一的術語名稱。以前,它會從0開始索引,然後對重複的術語引發錯誤。
  • 內部化wp_clean_update_cache()(用於wp core language listwp core language update)以防止在WordPress 4.0中引發致命錯誤。該函數是在WordPress 4.1中引入的。
  • 檢測到WordPress後,WP-CLI將等待WordPress完全加載後執行wp help。這意味着向現有命名空間添加命令的插件可以顯示其幫助文檔。
  • wp scaffold plugin-tests命令生成的Travis通知語法已糾正。
  • 支持在WP_CLIUtilshttp_request()中安裝到父項目中的Requests
  • 通過cli update傳遞--allow-root,以允許根用户更新WP-CLI。
  • 在使用WP-CLI選項卡補全後恢復apt-get選項卡補全。
  • 允許使用wp post update分配類別。
  • 防止wp import使用實際需要的內存的兩倍,並在大型導入中節省數百MB。

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

本次發佈的貢獻者:boonebgorges、danielbachhuber、janvoracek、gedex、johnbillion、kdoole、marcaddeo、miya0001、montchr、morganestes、rodrigoprimo、rmccue、scribu、stevegrunwell、szepeviktor

發表評論

發表回覆

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