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