新聞中心
在其生命的大部分時間里,wordpress都是使用簡單的代碼庫構(gòu)建的,其中少量面向?qū)ο蟮?php 是最抽象的系統(tǒng)。然而,在過去的幾年里,這種情況正在好轉(zhuǎn)。從單元測試到CSS預(yù)處理和命令行工具,越來越多對開發(fā)人員友好的資產(chǎn)不斷涌現(xiàn)。在本文中,我們將介紹我的最愛之一:WP-CLI。

創(chuàng)新互聯(lián)建站2013年開創(chuàng)至今,先為雙流等服務(wù)建站,雙流等地企業(yè),進行企業(yè)商務(wù)咨詢服務(wù)。為雙流企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。
什么是WP-CLI?
WP-CLI是一個命令行工具,供開發(fā)人員管理 WordPress 安裝的常見任務(wù)(并不常見)。它可以添加/刪除用戶、文章、類別、插入測試數(shù)據(jù)、在數(shù)據(jù)庫中搜索和替換、重置密碼、幫助解決性能問題等等!
WP-CLI作為一個開源項目已有十多年的歷史, 自2003年以來主要由Daniel Bachhuber維護 。WP-CLI 的主要目標是幫助加快WordPress開發(fā)人員的工作流程。
多年來,該項目已經(jīng)出現(xiàn)了更多!它現(xiàn)在甚至成為其他開源項目(例如Trellis和Bedrock )的要求。截至2017年1月,WP-CLI正式遷移到WordPress.org,現(xiàn)在也由Alain Schlesser共同維護。
WP-CLI v2于2018年8月8日發(fā)布,因此我們還將探索一些變化和新功能。
- 獲取WP-CLI
- WP-CLI的基礎(chǔ)知識
- 一般WP-CLI命令
- 有用的例子
- 遠程使用WP-CLI
- 使用Bash腳本
獲取WP-CLI
WP-CLI v2.0.0的最低PHP要求已提高到PHP 5.4。雖然這是一個很好的進步,但我們建議您至少運行受支持的PHP版本,即5.6或更高版本。
要開始使用,您需要安裝WP-CLI——一個非常簡單的過程。Linux和OSX的步驟如下,依次發(fā)出這三個命令:
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar chmod +x wp-cli.phar sudo mv wp-cli.phar /usr/local/bin/wp
如果出現(xiàn)問題或者您使用的是Windows,請參閱基本說明或其他安裝方法。
完成后,您應(yīng)該能夠發(fā)出wp --info命令并獲得有意義的響應(yīng)。
如果你想在你的服務(wù)器上安裝WP-CLI,這個過程是一樣的。不確定您當(dāng)前運行的是哪個版本?您可以隨時發(fā)出wp cli version命令來查找。
WP-CLI的基礎(chǔ)知識
從命令行訪問WordPress本身就很強大,但在使用bash腳本時可以為您提供更多控制和速度提升。
Bash腳本允許您使用單個命令運行一系列命令。您可以鍵入bash install-and-setup.sh并獲得以下結(jié)果:
- 下載WordPress
- 創(chuàng)建和填充
wp-config.php - 創(chuàng)建數(shù)據(jù)庫
- 安裝WordPress
- 安裝并激活您需要的任何插件
- 安裝并激活主題
- 下載并添加測試內(nèi)容
這些將是我為項目創(chuàng)建新測試環(huán)境所采取的步驟。通常至少需要5-10分鐘,特別是如果涉及到一些插件。發(fā)出單個命令顯然要快得多。
一般WP-CLI命令
如果您習(xí)慣于在終端中工作,那么WP-CLI對您來說沒有什么特別之處。命令總是以開頭,wp后跟命令和子命令,后跟必需和可選參數(shù),如下所示:
wp command subcommand requiredparam --optionalparam --optionalparam2=value
讓我們安裝一個主題,看看它是如何與真實命令配合使用的:
wp theme install twentyseventeen --activate
這將在您的 WordPress 安裝中安裝并激活二〇一七主題。
請注意,WP-CLI將與您當(dāng)前在終端中的WordPress安裝一起使用。如果您切換目錄以轉(zhuǎn)到另一個WordPress安裝,它將適用于該安裝。
有用的例子
簡而言之,這就是WP-CLI!雖然您可以執(zhí)行一些高級操作(我們稍后會介紹),但您已經(jīng)掌握了足夠的知識,可以開始并執(zhí)行所需的任何操作。我建議查看命令列表,嘗試其中的一些。我們將在這里看一些有用的東西,然后繼續(xù)通過SSH使用WP-CLI和使用bash腳本。
安裝WordPress
我經(jīng)常使用WP-CLI來設(shè)置測試環(huán)境,第一步是vanilla安裝。這是我運行的命令列表:
wp core download wp core config --dbname=mydbname --dbuser=mydbuser --dbpass=mydbpass --dbhost=localhost --dbprefix=whebfubwef_ --extra-php <注意這有多酷!使用第一個命令下載最新版本的WordPress。第二個命令使用數(shù)據(jù)庫訪問權(quán)限和一些附加的PHP設(shè)置配置文件。額外的常量確保我們有我們的調(diào)試選項進行測試。如果您想了解有關(guān)調(diào)試WordPress的更多信息,我們在此處提供了詳細指南。
第三個命令創(chuàng)建數(shù)據(jù)庫(WP-CLI使用配置文件中的數(shù)據(jù)庫訪問信息),最后,我們使用幾個參數(shù)安裝WordPress。
重新安裝WordPress核心
您還可以使用WP-CLI重新安裝WordPress核心。以下命令將下載沒有默認主題和插件的WordPress核心。
wp core download --skip-content --force更改WordPress網(wǎng)址
您可能需要或想要更改WordPress URL的原因有很多。也許您正在更改域、移動到子域、從www更新到非www、移動文件,甚至從 HTTP 遷移到 HTTPS。無論情況如何,您都可以輕松使用該
wp option update命令。下面是一個例子:wp option update home 'http://example.com' wp option update siteurl 'http://example.com'包含詳細信息的當(dāng)前插件列表
要獲取站點上安裝的當(dāng)前插件列表,只需使用以下命令。在此示例中,您可以看到我們安裝了Schema和Yoast SEO插件。它還將返回狀態(tài)(活動/停用)、是否有可用更新以及當(dāng)前版本。
wp plugin listWP-CLI插件列表
安裝多個插件
要安裝多個插件,您可以簡單地堆積參數(shù)。這是一個下載并激活3個插件的示例:
wp plugin install advanced-custom-fields jetpack ninja-forms --activate請注意,插件名稱來自它們在存儲庫中的名稱。解決這個問題的最簡單方法是訪問他們的頁面并查看URL或使用
wp plugin search searchterm,它將在終端中為您提供列表。WordPress插件庫URL
如果需要,您還可以使用
--version屬性安裝舊版本的WordPress插件。wp plugin install wordpress-seo --version=4.8 --activate更酷的是,您可以從遠程文件安裝插件,而不僅僅是在開發(fā)插件或使用高級插件時很方便的存儲庫。以下命令從存儲庫安裝兩個插件,一個從Amazon S3服務(wù)器安裝。
wp plugin install advanced-custom-fields jetpack https://d1qas1txbec8n.cloudfront.net/wp-content/uploads/2015/06/23073607/myplugin.zip --activate停用多個插件
要停用單個插件,您可以運行以下命令。
wp plugin deactivate wordpress-seo要一次停用所有插件,請運行以下命令。
wp plugin deactivate --allWP-CLI停用所有插件
如果您正在解決兼容性問題并且只需要一舉停用所有插件,則上述命令會很方便。然后,您可以返回并一一啟用它們,隨時進行測試。
更新插件
您還可以手動更新WordPress插件。下面的例子:
wp plugin update wordpress-seoWP-CLI手動更新WordPress插件
數(shù)據(jù)庫搜索和替換
僅通過復(fù)制粘貼數(shù)據(jù)庫難以搬遷站點的主要原因之一是該數(shù)據(jù)庫包含序列化數(shù)組。如果您需要
http://testsite.com用http://livewebsite.com序列化數(shù)組替換所有實例將沒有意義,因為字符串計數(shù)不匹配。
search-replace命令首先反序列化數(shù)組,然后執(zhí)行搜索和替換,然后重新序列化數(shù)組。您可以使用一個簡單的命令完成此操作:wp search-replace oldstring newstring附加參數(shù)允許您執(zhí)行更多操作,包括預(yù)覽將使用
--dry-run.導(dǎo)出導(dǎo)入
有兩種使用WP-CLI導(dǎo)出內(nèi)容的方法。您可以創(chuàng)建一個XML文件,就像WordPress導(dǎo)出工具一樣,或者您可以導(dǎo)出/導(dǎo)入原始數(shù)據(jù)庫。我發(fā)現(xiàn)后者在我的日常生活中更有用,它在同步站點時派上用場。
wp db export這是您創(chuàng)建SQL文件所需要做的wp db import file.sql全部工作,并且是您導(dǎo)入它所需的全部工作。就像一個魅力,只是小心不要覆蓋你需要的任何東西,導(dǎo)入基本上會轉(zhuǎn)儲現(xiàn)有的數(shù)據(jù)庫并使用提供的SQL文件代替。管理角色和權(quán)限
WP-CLI 可以使用該
wp role命令輕松地為您管理角色。如果您想測試您的插件如何與自定義角色一起工作,但您實際上并未在插件中創(chuàng)建角色,那么這非???。wp role create organizer Organizer wp cap list 'editor' | xargs wp cap add 'organizer' wp cap add 'organizer' 'manage-events'上面的命令將創(chuàng)建一個新角色(Organizer),將編輯器角色的所有功能添加到它,然后添加一個新功能:管理事件。使用正確的命令,您可以使用 WP-CLI更改您的WordPres密碼。
生成測試數(shù)據(jù)
我喜歡各種類似faker的功能 – 向您的網(wǎng)站添加可用于測試的虛擬內(nèi)容的功能。WP-CLI內(nèi)置了其中的一些功能,這里有一些功能可以生成用戶、術(shù)語和文章。
wp user generate --count=5 --role=editor wp user generate --count=10 --role=author wp term generate --count=12 wp post generate --count=50管理WP-Cron事件
您可以在WP-CLI中管理WP-Cron事件和/或WordPress Cron作業(yè)。例如,以下命令將為您提供當(dāng)前的cron事件列表。
wp cron event listwp-cron事件列表
刪除瞬態(tài)
您甚至可以使用以下命令刪除和清除一個或所有瞬變。
wp transient delete --all如果您正在運行multisite,則需要更復(fù)雜的命令。默認情況下,該命令僅檢查
wp_options表。它不檢查wp_1_options,wp_2_options等等。wp transient delete --all --network && wp site list --field=url | xargs -n1 -I % wp --url=% transient delete --all清理wp_options表
wp_options表可以為您的網(wǎng)站上查詢慢倍常見原因歸因于從第三方插件和主題留下自動加載數(shù)據(jù)。查看來自WP Bullet的這篇關(guān)于如何使用WP-CLI清理 wp_options表的文章。
刪除WordPress修訂歷史
在大型網(wǎng)站上,WordPress修訂版本可能會很快增加到數(shù)據(jù)庫中不需要的數(shù)千行。您可以使用WP-CLI刪除后期修訂。這是命令的示例:
$ wp post delete $(wp post list --post_type='revision' --format=ids)WP-CLI刪除WordPress修訂歷史
控制維護模式
從 WP-CLI v2.2.0 開始,您現(xiàn)在可以控制WordPress 站點上的維護模式。例子:
wp maintenance-mode activate wp maintenance-mode deactivate wp maintenance-mode status使用Elasticsearch索引數(shù)據(jù)
Elasticsearch是一個開源的全文搜索引擎。它用于索引數(shù)據(jù)并以驚人的速度搜索該數(shù)據(jù)。您可以使用ElasticPress WP-CLI命令通過SSH執(zhí)行索引。例子:
wp elasticpress index [--setup] [--network-wide] [--posts-per-page] [--nobulk] [--offset] [--show-bulk-errors] [--post-type]使用多語言網(wǎng)站
WP-CLI v2.0.0包括一個新的命令系列,
wp i18n供您使用多語言網(wǎng)站的人使用。例如,您可以為WordPress插件或主題創(chuàng)建POT文件。wp i18n make-pot[ ] [--slug= ] [--domain= ] [--ignore-domain] [--merge[= ]] [--exclude= ] [--skip-js] 請參閱i18n-command文檔。
在WooCommerce中使用WP-CLI
與電子商務(wù)網(wǎng)站合作?我們建議您查看Robot Ninja令人驚嘆的WP-CLI WooCommerce開發(fā)指南,了解您可以使用的快速簡便的命令。使用WP-CLI可以生成客戶、訂單列表,甚至創(chuàng)建批量產(chǎn)品。
遠程使用WP-CLI
您可以使用WP-CLI做的最好的事情之一是管理您的遠程WordPress安裝。這確實是網(wǎng)站經(jīng)理的夢想成真。
要通過SSH在遠程服務(wù)器上無縫運行WP-CLI命令,您以前需要wp-cli-ssh插件命令。但是從v0.24.0開始,這現(xiàn)在是WP-CLI本身的一部分!
重要提示:您需要在運行命令的計算機和服務(wù)器上安裝WP-CLI。
配置遠程服務(wù)器
您可以全局或本地配置服務(wù)器。要全局配置它們,請使用
config.yml文件。您還可以使用當(dāng)前工作目錄中的wp-cli.yml或wp-cli.local.yml文件。服務(wù)器的配置是這樣工作的,將其粘貼到上述文件之一中:
ssh: staging: cmd: ssh %pseudotty% [email protected] %cmd% url: http://myseite.com path: /www/path/to/site/root完成所有這些后,您可以鍵入以下命令來更新遠程站點上的WordPress:
wp ssh core update --host=staging如果您擁有或管理很多網(wǎng)站,我想您會發(fā)現(xiàn)這太棒了!該腳本將要求輸入密碼,但如果您使用RSA密鑰登錄,您也可以放棄密碼??纯催@篇文章來設(shè)置它。
使用Bash腳本
Bash腳本通過自動化任務(wù)為您節(jié)省更多時間。還記得我們需要輸入很多命令來安裝WordPress嗎?您可以使用單個bash腳本來完成此操作。在目錄中創(chuàng)建一個
install.sh文件。將我們之前的代碼粘貼到里面并保存。wp core download wp core config --dbname=mydbname --dbuser=mydbuser --dbpass=mydbpass --dbhost=localhost --dbprefix=whebfubwef_ --extra-php <您現(xiàn)在需要做的就是輸入
bash install.sh,一切都會為您完成,無需用戶干預(yù)。如果您管理很多站點,您可以設(shè)置所有環(huán)境并創(chuàng)建一個bash腳本,如下所示:wp ssh core update --host=clientA wp ssh core update --host=clientB wp ssh core update --host=clientC wp ssh core update --host=clientD當(dāng)新的WordPress版本問世時,這可以為您節(jié)省大量時間!由于您可以使用WP-CLI做任何您喜歡的事情,您甚至可以一次在多個客戶端站點上定期更新主題和插件。
小結(jié)
WP-CLI真的是開發(fā)人員和網(wǎng)站管理員的夢想成真。作為開發(fā)人員,我們可以快速創(chuàng)建測試站點,添加測試內(nèi)容并執(zhí)行各種導(dǎo)入/導(dǎo)出魔術(shù)。站點管理員可以使用單個命令處理多個站點的站點更新和其他任務(wù)。請務(wù)必查看WP-CLI v2發(fā)行說明!
如果您還沒有嘗試過WP-CLI,我強烈建議您試一試。還有一堆社區(qū)命令,如WP-CLI-SSH,它們添加了更多強大的功能!如果您遇到問題,請務(wù)必查看WP-CLI常見問題文檔。
網(wǎng)站欄目:WP-CLIv2–通過終端管理WordPress
分享地址:http://m.fisionsoft.com.cn/article/ccdcscc.html


咨詢
建站咨詢
