WP-CLI v2-hantera WordPress från terminalen

under större delen av sitt liv har WordPress byggts med en enkel kodbas med ett streck objektorienterad PHP som det mest abstrakta systemet. Under de senaste åren förändras detta dock till det bättre. Från enhetstestning till CSS-förbehandling och kommandoradsverktyg dyker fler och fler utvecklarvänliga tillgångar upp. I den här artikeln tittar vi på en av mina favoriter: WP-CLI.

Vad är WP-CLI?

WP-CLI är ett kommandoradsverktyg för utvecklare att hantera vanliga uppgifter (och inte så vanliga) för en WordPress-installation. Det kan lägga till / ta bort användare, inlägg, kategorier, infoga testdata, söka och ersätta i databasen, återställa lösenord, hjälpa till att felsöka prestandaproblem, och mycket mer!

stöd

WP-CLI har varit ett open source-projekt i över ett decennium och underhålls främst av Daniel Bachhuber sedan 2003. Det primära målet med WP-CLI är att hjälpa till att påskynda WordPress-utvecklarens arbetsflöden.

genom åren har projektet vuxit fram till så mycket mer! Det blir nu till och med ett krav för andra open source-projekt som Trellis och Bedrock. Från och med januari 2017 flyttade WP-CLI officiellt till WordPress.org och underhålls nu också av Alain Schlesser.

WP-CLI v2 släpptes den 8 augusti 2018, så vi kommer också att utforska några av de förändringar och nya funktioner. Om du är en Kinsta klient, WP-CLI v2.0.1 installeras som standard på alla våra servrar, helt enkelt SSH i din server för att komma igång. SSH-åtkomst ingår i alla våra värdplaner (kan inte ansluta via SSH? Fixa SSH” Connection Refused ” – felet).

  • få WP-CLI
  • grunderna i WP-CLI
  • WP-CLI-kommandon i allmänhet
  • användbara exempel
  • använda WP-CLI på distans
  • använda Bash-skript

få WP-CLI

det minsta PHP-kravet på WP-CLI v2.0.0 har stött upp till PHP 5.4. Även om detta är ett bra steg framåt rekommenderar vi att du åtminstone kör en version av PHP som stöds, vilket betyder 5.6 eller högre. PHP 7.2 är standard på alla Kinsta-installationer, både av säkerhets-och prestandaskäl. Vi har också PHP 7.3 och 7.4 tillgängliga.

för att komma igång måste du installera WP-CLI – en mycket enkel process. Stegen för Linux och OSX är följande, utfärda dessa tre kommandon efter varandra:

curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.pharchmod +x wp-cli.pharsudo mv wp-cli.phar /usr/local/bin/wp

om något går fel eller om du är på Windows, se de grundläggande instruktionerna eller de alternativa installationsmetoderna.

när du är klar bör du kunna utfärda kommandot wp --info och få ett meningsfullt svar.

processen är densamma om du vill installera WP-CLI på din server. Kom ihåg att för Kinsta-klienter är WP-CLI redan installerat. Inte säker på vilken version du kör för närvarande? Du kan alltid utfärda kommandot wp cli version för att ta reda på det.

grunderna i WP-CLI

att ha tillgång till WordPress från kommandoraden är kraftfull i sig men kan ge dig ännu mer kontroll och hastighetsvinster när du använder bash-skript.

Bash-skript låter dig köra en sekvens av kommandon med ett enda kommando. Du kan skriva bash install-and-setup.sh och få följande resultat:

  • ladda ner WordPress
  • skapa och fylla i wp-config.php
  • skapa databasen
  • installera WordPress
  • installera och aktivera alla plugins du behöver
  • installera och aktivera ett tema
  • ladda ner och Lägg till testinnehåll

dessa skulle vara de mest steg jag skulle ta för att skapa en ny testmiljö för ett projekt. Normalt skulle det ta mig 5-10 minuter åtminstone, särskilt om det finns några plugins inblandade. Att utfärda ett enda kommando är uppenbarligen mycket snabbare.

WP-CLI-kommandon i allmänhet

om du är van vid att arbeta i terminalen finns det inget speciellt med WP-CLI för dig. Kommandon börjar alltid med wp följt av ett kommando och underkommando, följt av obligatoriska och valfria parametrar, något som detta:

wp command subcommand requiredparam --optionalparam --optionalparam2=value

låt oss installera ett tema för att se hur detta fungerar med ett riktigt kommando:

wp theme install twentyseventeen --activate

detta installerar och aktiverar Twenty Seventeen-temat på din WordPress-installation.

Observera att WP-CLI kommer att arbeta med WordPress installation du befinner dig i terminalen. Om du byter kataloger för att gå till en annan WordPress-installation fungerar den med den.

användbara exempel

det var WP-CLI i ett nötskal! Medan det finns några avancerade saker du kan göra, som vi kommer till om ett ögonblick, vet du redan tillräckligt för att komma igång och göra vad du behöver. Jag rekommenderar att du tittar på kommandolistan, prova några av dem. Vi tar en titt på några användbara saker här, sedan gå vidare till att använda WP-CLI över SSH och använda bash skript.

installera WordPress

jag använder WP-CLI mycket för att ställa in testmiljöer, vars första steg är en vaniljinstallation. Här är en lista över kommandon jag kör:

wp core downloadwp core config --dbname=mydbname --dbuser=mydbuser --dbpass=mydbpass --dbhost=localhost --dbprefix=whebfubwef_ --extra-php <<PHPdefine( 'WP_DEBUG', true );define( 'WP_DEBUG_LOG', true );PHPwp db createwp core install --url=http://siteurl.com --title=SiteTitle --admin_user=username --admin_password=mypassword 

observera hur coolt det här är! Den senaste versionen av WordPress laddas ner med det första kommandot. Det andra kommandot ställer in konfigurationsfilen med databasåtkomst och ytterligare PHP i slutet. De ytterligare konstanterna ser till att vi har våra felsökningsalternativ för testning. Vi har en detaljerad guide här om du vill lära dig mer om felsökning av WordPress.

det tredje kommandot skapar databasen (WP-CLI använder databasåtkomstinformationen från konfigurationsfilen) och slutligen installerar vi WordPress med ett par parametrar.

installera om WordPress Core

du kan också installera om WordPress core med WP-CLI. Följande kommando skulle ladda ner WordPress core utan standardteman och plugins.

wp core download --skip-content --force

ändra WordPress URL

det finns många anledningar till varför du kanske behöver eller vill ändra din WordPress URL. Kanske byter du domäner, flyttar till en underdomän, uppdaterar från www till icke-www, flyttar filer runt eller till och med migrerar från HTTP till HTTPS. Hur som helst kan du enkelt använda kommandot wp option update för detta. Här är ett exempel nedan:

wp option update home 'http://example.com'wp option update siteurl 'http://example.com'

lista över aktuella Plugins med detaljer

för att få en lista över aktuella plugins installerade på en webbplats, använd bara följande kommando. I det här exemplet kan du se att vi har schemat och Yoast SEO-plugin installerat. Det kommer också att returnera statusen (aktiv / inaktiverad), om det finns en uppdatering tillgänglig och den aktuella versionen.

wp plugin list
WP-CLI plugin lista

WP-CLI plugin lista

installera flera Plugins

för att installera flera plugins kan du helt enkelt stapla på parametrar. Här är ett exempel som hämtar och aktiverar 3 plugins:

wp plugin install advanced-custom-fields jetpack ninja-forms --activate

Observera att plugin-namnen kommer från deras namn i förvaret. Det enklaste sättet att räkna ut detta är att besöka deras sida och titta på webbadressen eller att använda wp plugin search searchterm som ger dig en lista i terminalen.

WordPress plugin repository URL

WordPress plugin repository URL

du kan också installera äldre versioner av WordPress plugins om det behövs med attributet --version.

wp plugin install wordpress-seo --version=4.8 --activate

ännu svalare kan du installera plugins från fjärrfiler, inte bara förvaret som är praktiskt om du utvecklar ett plugin eller använder ett premium-plugin. Följande kommando installerar två plugins från förvaret och en från en Amazon S3-server.

wp plugin install advanced-custom-fields jetpack https://d1qas1txbec8n.cloudfront.net/wp-content/uploads/2015/06/23073607/myplugin.zip --activate

inaktivera flera Plugins

för att inaktivera ett enda plugin kan du köra följande kommando.

wp plugin deactivate wordpress-seo

för att inaktivera alla dina plugins på en gång kör följande kommando.

wp plugin deactivate --all
WP-CLI inaktivera alla plugins

WP-CLI inaktivera alla plugins

ovanstående kommando kan vara praktiskt om du felsöker kompatibilitetsproblem och helt enkelt behöver inaktivera alla plugins i ett svep. Du kan sedan gå tillbaka och aktivera dem en efter en, testa när du går.

uppdatera Plugins

du kan också manuellt uppdatera WordPress plugins. Exempel nedan:

wp plugin update wordpress-seo
WP-cli manuellt uppdatera wordpress plugin

WP-CLI manuellt uppdatera WordPress plugin

databassökning och ersätt

en av de främsta anledningarna till att det är svårt att migrera en webbplats genom att bara kopiera och klistra in en databas är att Databasen innehåller serialiserade matriser. Om du behöver ersätta alla instanser av http://testsite.com med http://livewebsite.com kommer dina serialiserade arrayer inte att vara meningsfulla eftersom strängräkningen inte matchar.

Anmäl dig till nyhetsbrevet

vi växte vår trafik 1,187% med WordPress. Vi visar dig hur.

gå med i 20 000 + andra som får vårt veckobrev med insider WordPress-tips!

Prenumerera nu

kommandot search-replace unserialiserar först matriser, utför sedan sökningen och ersätt och serialiserar sedan matriserna igen. Du kan få detta gjort med ett enkelt kommando:

wp search-replace oldstring newstring

ytterligare parametrar gör att du kan göra mycket mer, inklusive förhandsgranska vad som kommer att ersättas med --dry-run.

importera och exportera

det finns två sätt att exportera innehåll med WP-CLI. Du kan skapa en XML-fil, precis som WordPress export tool gör, eller så kan du exportera/importera raw-databasen. Jag tycker att det senare är mycket mer användbart i min dagliga rutin, det är praktiskt när du synkroniserar webbplatser.

wp db export är allt du behöver göra för att skapa en SQL-fil och wp db import file.sql är allt du behöver för att importera den. Fungerar som en charm, bara vara noga med att inte skriva över allt du behöver, importerar kommer i princip dumpa den befintliga databasen och använda den medföljande SQL-fil istället.

hantera roller och funktioner

WP-CLI kan hantera roller för dig ganska enkelt med kommandot wp role. Det här är ganska coolt om du vill testa hur ditt plugin fungerar med anpassade roller men du skapar faktiskt inte rollerna i ditt plugin.

wp role create organizer Organizerwp cap list 'editor' | xargs wp cap add 'organizer'wp cap add 'organizer' 'manage-events'

kommandona ovan skapar en ny roll (arrangör), lägger till alla funktioner från redigeringsrollen till den och lägger sedan till en ny kapacitet: hantera händelser.

generera testdata

jag älskar alla slags faker-liknande funktioner – de som lägger till dummyinnehåll på din webbplats som du kan använda för test. WP-CLI har ett par av dessa inbyggda, här är några funktioner som kommer att generera användare, villkor och inlägg.

wp user generate --count=5 --role=editorwp user generate --count=10 --role=authorwp term generate --count=12wp post generate --count=50

hantera WP-Cron-händelser

du kan hantera WP-Cron-händelser och eller ett WordPress Cron-jobb i WP-CLI. Till exempel kommer följande kommando att ge dig din nuvarande cron-händelselista.

wp cron event list
wp-cron händelselista

wp-cron händelselista

ta bort transienter

du kan även ta bort och rensa ut en eller alla transienter med följande kommando.

wp transient delete --all

om du kör multisite behöver du lite mer komplicerat kommando. Som standard kontrollerar kommandot bara tabellen wp_options. Det kontrollerar inte för wp_1_options, wp_2_options, etc.

kämpar med driftstopp och WordPress problem? Kinsta är värdlösningen utformad för att spara tid! Kolla in våra funktioner

wp transient delete --all --network && wp site list --field=url | xargs -n1 -I % wp --url=% transient delete --all

rensa upp wp_options tabell

wp_options tabellen kan vara en vanlig boven i dramat för långsamma frågestunder på din webbplats på grund av autoloaded data som finns kvar från tredje part plugins och teman. Kolla in den här fantastiska artikeln från WP Bullet om hur du använder WP-CLI för att städa upp din wp_options-tabell.

ta bort WordPress revideringar

på stora webbplatser, WordPress revideringar kan lägga upp mycket snabbt till tusentals rader i din databas som inte behövs. Du kan ta bort inläggsrevisioner med WP-CLI. Här är ett exempel på kommandot:

$ wp post delete $(wp post list --post_type='revision' --format=ids)
WP-cli ta bort wordpress revideringar

WP-CLI ta bort WordPress revideringar

kontroll underhållsläge

från och med WP-CLI v2.2.0 kan du nu styra underhållsläge på din WordPress webbplats. Exempel:

wp maintenance-mode activatewp maintenance-mode deactivatewp maintenance-mode status

indexera Data med Elasticsearch

Elasticsearch är en öppen källkod fulltext sökmotor. Det används för att indexera data och söka dessa data otroligt snabbt. Vi erbjuder detta som ett tillägg för Kinsta-kunder. Du kan använda ElasticPress WP-CLI-kommandon för att utföra indexering över SSH. Exempel:

wp elasticpress index

arbeta med flerspråkiga webbplatser

WP-CLI v2.0.0 innehåller en ny familj av kommandon wp i18n för er som arbetar med flerspråkiga webbplatser. Du kan till exempel skapa en POT-fil för ett WordPress-plugin eller tema.

wp i18n make-pot <source> ] 

se i18n-kommandodokumentation.

använda WP-CLI med WooCommerce

arbeta med e-handelswebbplatser? Vi rekommenderar att du kontrollerar Robot Ninjas fantastiska WP-CLI WooCommerce utvecklingsguide för snabba och enkla kommandon du kan använda. Att skapa en lista över kunder, beställningar och till och med skapa bulkprodukter är alla möjliga med WP-CLI.

använda WP-CLI på distans

en av de bästa sakerna du kan göra med WP-CLI är att hantera dina fjärranslutna WordPress-installationer. Detta är verkligen en webbplatschefs dröm.

för att sömlöst köra WP-CLI-kommandon på en fjärrserver via SSH behövde du tidigare kommandot WP-cli-ssh addon. Men från och med v0. 24. 0 är detta nu en del av WP-CLI själv!

viktigt: du behöver WP-CLI installerat både på datorn du kör kommandot från och din server.

konfigurera fjärrservrar

du kan konfigurera dina servrar globalt eller lokalt. För att konfigurera dem globalt använder du filen config.yml. Du kan också använda filerna wp-cli.yml eller wp-cli.local.yml i din nuvarande arbetskatalog.

konfigurationen av servrar fungerar ungefär så här, klistra in det i en av de nämnda filerna:

ssh: staging: cmd: ssh %pseudotty% %cmd% url: http://myseite.com path: /www/path/to/site/root

när allt detta är gjort kan du skriva följande kommando för att uppdatera WordPress på din fjärrwebbplats:

wp ssh core update --host=staging

om du äger eller hanterar många webbplatser tror jag att du kan se att det här är fantastiskt! Skriptet kommer att be om ett lösenord, men om du använder RSA-nycklar för att logga in kan du också avstå från det. Ta en titt på den här artikeln för att ställa in det.

med Bash-skript

Bash-skript sparar du ännu mer tid genom att automatisera uppgifter. Kom ihåg hur vi behövde skriva många kommandon för att installera WordPress? Du kan göra det med ett enda bash-skript. Inuti en katalog skapar du en install.sh – fil. Klistra in samma kod som vi hade tidigare inuti och spara den.

wp core downloadwp core config --dbname=mydbname --dbuser=mydbuser --dbpass=mydbpass --dbhost=localhost --dbprefix=whebfubwef_ --extra-php <<PHPdefine( 'WP_DEBUG', true );define( 'WP_DEBUG_LOG', true );PHPwp db createwp core install --url=http://siteurl.com --title=SiteTitle --admin_user=username --admin_password=mypassword 

allt du behöver göra nu är att skriva bash install.sh och allt kommer att göras för dig, utan användarintervention. Om du hanterar många webbplatser kan du ställa in alla dina miljöer och skapa ett bash-skript så här:

wp ssh core update --host=clientAwp ssh core update --host=clientBwp ssh core update --host=clientCwp ssh core update --host=clientD

när en ny WordPress-version kommer ut kan det spara mycket tid! Eftersom du kan göra vad du vill med WP-CLI kan du även uppdatera teman och plugins regelbundet på ett antal klientwebbplatser samtidigt.

sammanfattning

WP-CLI är verkligen utvecklaren och webbplatschefens dröm. Som utvecklare kan vi skapa testplatser i en handvändning, lägga till testinnehåll och göra alla typer av import/export Magi. Webbplatshanterare kan hantera webbplatsuppdateringar och andra uppgifter för flera webbplatser med enkla kommandon. Se till att kolla in WP-CLI v2 release notes!

om du inte redan har provat WP-CLI uppmanar jag dig att ge det en chans. Det finns också en massa community-kommandon som WP-CLI-SSH som lägger till ännu fler fantastiska funktioner! Om du stöter på problem, se till att kolla in WP-CLI common issues-dokumentationen.

glöm inte att Kinstas Google-molnbaserade arkitektur stöder WP-CLI ur lådan. Om du vill prova den modernaste WordPress-värdarkitekturen och ha tillgång till fantastiska verktyg som WP-CLI, Prova vår hanterade WordPress-värd.

om du gillade den här artikeln kommer du att älska Kinstas WordPress-värdplattform. Turboladda din webbplats och få 24/7 support från vårt veteran WordPress-team. Vår Google Cloud powered-Infrastruktur fokuserar på automatisk skalning, prestanda och säkerhet. Låt oss visa dig Kinsta skillnaden! Kolla in våra planer



+