# WP-CLI  v1.5.0  發行說明

*Published:* 2018-01-31
*Author:* 殼殼蟲

今天又是釋出日！

我們很高興地為您帶來 WP-CLI[4](#541f1836) v1.5.0，自2017年11月v1.4.1以來合併了總共279個拉取請求。

這次釋出由不知疲倦的 Martin Burke（@gitlost）領導，他確保了沒有一個 bug 被忽視，沒有一個邊界情況未經測試。

新的提交者
-----

- Pascal（@swissspidy）住在瑞士蘇黎世。除其他貢獻外，他一直在處理 `embed` 命令族的艱苦工作。

外掛 校驗驗證
-------

WP-CLI 現在可以透過新的 `plugin verify-checksums` 命令來驗證已安裝外掛的完整性（除了已有的 `core verify-checksums` 命令）。\[#15\], \[#26\]

```
# 驗證所有已安裝外掛的檔案與官方校驗和是否匹配。
$ wp plugin verify-checksums --all
+-------------+---------------+-------------------------+
| plugin_name | file          | message                 |
+-------------+---------------+-------------------------+
| gutenberg   | backdoor.php  | 檔案已新增          |
| gutenberg   | gutenberg.php | 校驗和不匹配 |
+-------------+---------------+-------------------------+
錯誤：只驗證了 1 個外掛中的 2 個（1 個失敗）。

```

注意：這是該功能的第一個迭代版本，仍然存在一些限制：

- 它僅適用於託管在官方外掛倉庫中的外掛。
- 它僅適用於這些外掛的最新版本，因為我們尚未在 wordpress.org 後端部署程式碼來為舊版本生成校驗和。

在您計劃使用這個新命令時，請牢記這些限制。

隨著我們進一步迭代此專案，允許驗證來自主題倉庫的所有免費主題，以及希望以後也包括第三方外掛/主題，我們歡迎任何反饋意見以改進當前的實施。

WordPress 配置檔案操作
----------------

現在，管理您的 `wp-config.php` 檔案變得更加容易！我們不僅改進了 `config get`，還包括了 `config has` 和可過濾的 `config list` 命令… 不僅如此，我們最終為您帶來了全新的 `config set` 和 `config delete` 命令，用於 WordPress 配置檔案操作。\[#42\], \[#44\]

```
# 獲取在 wp-config.php 檔案中定義的 table_prefix。
$ wp config get table_prefix
wp_

# 檢查 wp-config.php 檔案中是否存在 DB_PASSWORD 常量。
$ wp config has DB_PASSWORD
(返回退出程式碼)

# 僅從 wp-config.php 檔案中列出資料庫使用者和密碼。
$ wp config list DB_USER DB_PASSWORD --strict
+-------------+-------+----------+
| key         | value | type     |
+-------------+-------+----------+
| DB_USER     | root  | constant |
| DB_PASSWORD | root  | constant |
+-------------+-------+----------+

```

特別感謝 @fjarrett 對 `wp-cli/wp-config-transformer` 軟體包的出色工作，它支援了對 `wp-config.php` 的更改。

oEmbed 管理
---------

新的 `embed` 命令允許您檢查和操作 oEmbed 物件，例如，您可以清除特定帖子的快取值：

```
$ wp embed cache clear 123
成功：已清除 oEmbed 快取。

```

或者重置快取值：

```
$ wp embed cache trigger 123
成功：已觸發快取！

```

您可以使用 `fetch` 檢視 URL[9](#7218f948) 的嵌入 HTML[5](#a17f90fb)：

```
$ wp embed fetch https://www.youtube.com/watch?v=dQw4w9WgXcQ

```

\[youtube https://www.youtube.com/watch?v=dQw4w9WgXcQ?feature=oembed&amp;w=525&amp;h=295\]

或者使用 `--raw` 選項檢視提供程式返回的內容：

還有很多功能！

陣列引數支援（目前僅限 meta）
-----------------

`post create` 和 `post update` 命令的 `--meta_input` 選項現在接受 JSON[6](#8c59903c) 格式的陣列，因此您可以一次性新增或更新帖子及其後設資料：

```
$ wp post create --post_title='Title' --post_content='Content.' --meta_input='{""key1"":""value1"",""key2"":""value2""}
成功：已建立帖子 123。

```

這是一個很好的時間節省方式，因為以前您需要執行三個單獨的命令才能獲得相同的結果。

這個看似無害的變更意味著我們終於可以透過這個 JSON 語法接受關聯陣列作為引數。 `--meta_input` 引數可能只是更多功能的第一個。

v1.5.0 中的其他內容
-------------

**向後相容性破壞**

請注意，一個框架變更 \[#4624\] 改變了對 `db search`、`db tables` 和 `search-replace` 命令的表 filter 引數的行為。

現在，表篩選引數：

- 在給定表篩選而不給定 `--all-tables-with-prefix` 或 `--all-tables` 選項時，將尊重註冊的 `wpdb` 表。
- 在給定 `--network` 選項時，不會忽略 `--scope` 選項。
- 表總是以排序順序返回。

還請注意，`option list` 現在不再預設顯示瞬時值（transients）\[#127\]。

**新的和值得關注的**

- `user reset-password`: 重置使用者的密碼 \[#119\]。
- 命令描述現在遵循 WordPress 的規範，使用第三人稱單數，感謝 DrewAPicture！

**命令改進**

- `cli info`: 
    - 顯示作業系統和 shell 資訊 \[#4604\], \[#4610\]。
- `core download`: 
    - 當 ZIP URL 為 `'http://'` 時，跳過快取以獲取夜間版本 \[#44\]。
- `core update`: 
    - 在 WP `get_core_checksums()` 中忽略 SSL[8](#4814bf9d) trigger\_error \[#48\]。
    - 使用 `ZipArchive` 刪除 `wp-content/` 以始終允許 `--skip-content` \[#59\]。
- `core verify-checksums`
    - 在 WordPress 根目錄中包含以 `wp-` 為字首的檔案時，警告\[#28\]。
- `db *`: 
    - 使用新的 `after_wp_config_load` 鉤子來提前呼叫 `db` 命令\[#57\]。
- `db check/cli/create/drop/export/import/optimize/query/repair/reset`: 
    - 為所有提升許可權命令新增 `--dbuser` 和 `--dbpass` 選項，以及 `check`、`optimize` 和 `repair` 命令的額外引數選項\[#75\]。
- `db search`: 
    - 注意：有關表篩選引數的處理，請參見上面的向後相容性破壞\[#4624\]。
- `db size`: 
    - 確保 `--size_format=<format>` 引數的預設值始終為位元組\[#69\]。
    - 包括 TB 和 GB 資料庫大小格式的支援\[#81\]。
- `db tables`: 
    - 注意：有關表篩選引數的處理，請參見上面的向後相容性破壞\[#4624\]。
- `export`: 
    - 當已指定 `--post__in` 時，新增 `--with_attachments` 選項以強制包括附件\[#16\]。
- `media image-size`: 
    - 在輸出中新增尺寸比率\[#58\], \[#59\]。
- `media regenerate`: 
    - 如果沒有尺寸後設資料，不會丟擲 PHP 警告\[#61\]。
- `option get`: 
    - 如果選項不存在，顯示錯誤訊息\[#126\]。
- `option list`: 
    - 預設情況下不顯示瞬時值\[#127\]。
- `package *`: 
    - 支援混合大小寫的包名稱\[#49\], \[#50\]。
    - 新增 `GITHUB_TOKEN` 和 `COMPOSER_AUTH` 處理\[#47\]。
- `package browse/list`： 
    - 如果瀏覽/列出軟體包時，Composer[2](#2ec55bd2) 無法訪問儲存庫\[#60\]，則捕獲異常。
- `package install/uninstall`： 
    - 在記憶體限制錯誤時還原`composer.json` \[#64\]。
- `package install`： 
    - 從正確的分支檢索軟體包名稱\[#65\]。
- `plugin install`： 
    - 將Github專案名稱用作Github存檔URL的外掛目錄\[#81\]
- `post create/update`： 
    - 透過將JSON格式的陣列傳遞給`--meta_input`\[#133\]，\[#138\]來新增新增多個後設資料的功能。
- `post create`： 
    - 在`--post_category`中接受`category`標籤，檢查是否提供了不正確的ID或標籤\[#129\]。
- `post delete`： 
    - 糾正刪除訊息\[#124\]。
- `post generate`： 
    - 新增對生成特定`post_title`的支援\[#94\]。
- `scaffold block`： 
    - 為外掛或主題構建基本的Gutenberg[1](#6729b68f)塊\[#96\]。
    - 基於Gutenberg手冊新增內聯檔案，生成`style.css`，支援最新的`supportsHtml`API[7](#8e97c2a8)，WordPress編碼標準修復\[#107\]。
    - 將PHP模板更新為最新的推薦方法\[#111\]。
- `scaffold child-theme`： 
    - 生成符合WordPress編碼標準的程式碼\[#117\]。
- `scaffold plugin`： 
    - 為構建的`Gruntfile.js`新增預設任務\[#87\]。
    - 生成符合WordPress編碼標準的程式碼\[#120\]。
- `scaffold plugin-tests`： 
    - 使用Composer確定要安裝的PHPUnit[3](#bca31561)版本，而不是根據Travis環境變數\[#75\]。
    - 將`phpunit.xml.dist`新增到XML[10](#8420d261)宣告\[#78\]。
    - 在`bootstrap.php`中使用更新的錯誤訊息\[#90\]。
    - 從Travis CI快取中刪除Composer供應商目錄\[#99\]。
- `scaffold post-type`： 
    - 從dashicon引數中修剪`dashicon-`以防止重複字串\[#70\]。
    - 重新整理構建的文章型別標籤\[#84\]。
    - 生成符合WordPress編碼標準的程式碼\[#110\]。
- `scaffold taxonomy`： 
    - 將`term_updated_messages`新增到構建的分類法\[#82\]。
    - 生成符合WordPress編碼標準的程式碼\[#112\]。
- `scaffold theme-tests`： 
    - 向`tests/bootstrap.php`新增`theme_root`過濾器，以確保主題的`functions.php`被載入\[#116\]。
- `search-replace`： 
    - 注意：請檢視上面關於表過濾引數處理的向後相容性破壞\[#4624\]。
    - 新增`--skip-tables=<tables>`引數以排除特定表格\[#48\]。
    - 在使用`--report-change-only`時停用沒有索引的報告表\[#54\]。
    - 對報告進行一般改進，包括在沒有表格輸出時停用表格顯示\[#57\]。
    - 修復未引用非整數主鍵\[#59\]，\[#63\]。
- `user remove-caps`： 
    - 如果許可權不存在或從角色繼承\[#125\]，則出錯。

**框架增強**

- 在無法建立快取目錄時改進警告\[#4456\]。
- 允許`@when`方法覆蓋類`@when`\[#4458\]。
- 從幫助文字中提取連結到腳註\[#4465\]。
- 實現命令名稱空間\[#4470\]。
- 生成沒有`set_url_scheme()`的`get_site_url()`\[#4473\]。
- 引入新的`after_wp_config_load`掛鉤（用於早期呼叫`wp db *`）\[#4488\]。
- 使用`vagrant ssh-config`自動獲取主機名\[#4495\]。
- 在找不到安裝時指示資料庫中的其他WP安裝\[#4476\]。
- 允許在Debian構建中使用`php7.1-mysql`\[#4511\]。
- 在註冊命令時支援`'longdesc'`作為命令引數\[#4513\]，\[#4636\]。
- 改進提取器錯誤訊息\[#4510\]。
- 在multisite上執行`wp cache flush`和`wp search-replace`，即使找不到站點\[#4527\]。
- 修復在Windows git/cygwin bash上提示問題\[#4547\]。
- 除非啟用全域性術語，否則不顯示`'sitecategories'`表\[#4552\]。
- 確保晚註冊的命令出現在使用中\[#4564\]。
- 改進在呼叫程式和使用more.com時的Windows相容性\[#4572\]，\[#4595\]。
- 在RPM構建中使用更柔和的PHP要求\[#4571\]。
- 僅當它們產生有效選項時才提供基於字典的建議\[#4590\]。
- 向`make_progress_bar()`新增間隔引數\[#4603\]。
- 新增`Utils\esc_like()`對`wpdb`版本的補充\[#4612\]。
- 正確處理`wp_get_table_names()`中的萬用字元（見上述向後相容性破壞）\[#4624\]。
- 新增shell陣列解析助手\[#4623\]，\[#4635\]。
- 檢查WordPress core檔案的可讀性\[#4626\]。
- 為錯誤輸入新增一些建議\[#4577\]。

**這次釋出的貢獻者總共有39位。**   
ahmadawais, BhargavBhandari90, danielbachhuber, davidbhayes, DrewAPicture, drzraf, ecotechie, emgk, eriktorsner, fjarrett, gitlost, grantpalin, gziolo, inetbiz, kirtangajjar, LC43, lukecav, marcochiesi, marksabbath, miya0001, mm-pagely, neonardo1, ntwb, ocean90, playmono, rkialashaki, runofthemill, ryotsun, sagarprajapati, schlessera, Shelob9, ssnepenthe, swissspidy, szepeviktor, terriann, thrijith, vbaranovskiy-plesk, vigilanteweb, websupporter

### 名詞解釋

1. Gutenberg：WordPress 的區塊編輯器專案名稱 [↩︎](#6729b68f-link)
2. Composer：PHP 的依賴管理工具 [↩︎](#2ec55bd2-link)
3. PHPUnit：PHP 語言的單元測試框架 [↩︎](#bca31561-link)
4. WP-CLI：WordPress 的命令列管理工具 [↩︎](#541f1836-link)
5. HTML：超文字標記語言，網頁內容的基礎格式 [↩︎](#a17f90fb-link)
6. JSON：一種輕量級的資料交換格式 [↩︎](#8c59903c-link)
7. API：應用程式程式設計介面，軟體之間互動的標準方式 [↩︎](#8e97c2a8-link)
8. SSL：安全套接層協議，為網站提供加密通訊 [↩︎](#4814bf9d-link)
9. URL：統一資源定位符，即網址 [↩︎](#7218f948-link)
10. XML：可擴充套件標記語言，用於結構化資料的通用格式 [↩︎](#8420d261-link)
<!-- WP Chinese Converter Full Page Converted. Target Lang: zh-tw -->