WP-CLI har funnits ganska länge (ca 2011) och har stadigt fått fart i WordPress-utvecklaren. Men vad är det exakt, och hur kan du använda det i ditt WordPress-arbetsflöde?
Tanken bakom WP-CLI är att den låter dig interagera med och hantera WordPress-webbplatser via ett kommandoradsgränssnitt. Enligt den officiella dokumentationen är det en kommandorad som är alternativ till att använda det traditionella WordPress admin-användargränssnittet.
Kommandoradsinriktningen är meningsfull eftersom du oftast kan göra saker på en dator mycket snabbare via kommandoraden och WP-CLI är inte annorlunda. Om du någonsin har använt kommandoraden på Windows, eller Terminal på MacOS, så är du rätt hemma med WP-CLI.
Men det här är en handledning riktad mot nybörjare, så oroa dig inte om du inte är en kommandoradsguru. Om du aldrig har använt WP-CLI eller kommandoraden innan, så är du i gott skick och definitivt på rätt ställe!
Innan vi går längre, har jag en bekännelse att göra. Som jag antydde ovan har jag aldrig använt WP-CLI tidigare! Jag har känt till det ganska länge och har blivit klåda för att prova det, men aldrig fått mig att faktiskt installera den och använda den. Hittills är det ...
Så vi kommer att vara bokstavligen i detta tillsammans och utarbeta hur man använder WP-CLI både som komplett nybörjare. Jag är verkligen intresserad av att se hur WP-CLI passar in i mitt befintliga WordPress-utvecklings arbetsflöde och om det kan bidra till att öka produktiviteten.
Är du redo att komma igång? OK då, låt oss gå!
Installera WP-CLI för första gången kan verka lite skrämmande. Jag var tvungen att läsa installationsanvisningarna några gånger innan det var vettigt. Men som det visar sig är det inte så svårt när man förstår exakt vad som krävs.
Till att börja med måste vi få den senaste versionen av WP-CLI. Det rekommenderade sättet att göra detta är att ladda ner WP-CLI som en Phar-fil via kommandoraden. Det här är bara en PHP-arkivfil som innehåller alla de PHP-filer som behövs för att WP-CLI ska kunna köras. Allt är invecklat i en enda bekväm fil redo för att vi ska ladda ner.
Öppna ett terminalfönster och skriv in följande:
$ curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
Detta laddar ner WP-CLI Phar-filen till din dator. Låt oss kontrollera allt är OK genom att testa WP-CLI-arkivet.
php wp-cli.phar - info
Du ska se produktionen som liknar följande:
PHP-binär: / usr / bin / php PHP-version: 5.6.30 php.ini används: WP-CLI root dir: phar: //wp-cli.phar WP-CLI-paket dir: WP-CLI global config: WP-CLI projektkonfiguration: WP-CLI-version: 1.1.0
För att göra WP-CLI mer bekvämt, vill vi kunna köra det från var som helst och via ett kortare kommando som wp
snarare än att behöva skriva in wp-cli.phar
varje gång.
Vi kan göra detta via följande två kommandon:
chmod + x wp-cli.phar sudo mv wp-cli.phar / usr / local / bin / wp
Försök nu att springa wp - info
i ett terminalfönster (pekar på någon katalog). Om du ser samma utgång som tidigare när du körde php wp-cli.phar - info
då är du i affärer. WP-CLI är uppbyggd och redo att användas!
Det finns andra sätt att installera WP-CLI, till exempel via Kompositör, så du kanske vill kolla in alternativa metoder om du kämpar med den rekommenderade standardmetoden.
Installera på Windows är något mer involverad, eftersom PHP inte är tillgängligt från kommandoraden som standard. Du kan installera PHP manuellt, men det enklaste sättet är att använda en lokal utvecklingsserver som MAMP eftersom PHP automatiskt installeras som en del av det övergripande paketet.
När PHP är tillgängligt på ditt system måste du hitta sökvägen till PHP-körbar och göra den tillgänglig globalt (detta beskrivs i detalj i PHP-handboken).
Med PHP installerat och tillgängligt från vilken katalog som helst, ladda ner filen wp-cli.phar manuellt och spara den till en mapp som c: \ wp-cli
. För att kunna köra WP-CLI via wp
kommando som vi gjorde på macOS, skapa en batchfil som heter wp.bat
inuti samma mapp som du sparade wp-cli.phar
arkivfilen.
Lägg till detta i batchfilen:
@ECHO OFF php "c: /wp-cli/wp-cli.phar"% *
Slutligen lägg till c: \ wp-cli
till din globala väg:
setx-sökvägen "% path%; c: \ wp-cli"
WP-CLI bör nu vara tillgänglig från ett kommandoradsfönster.
Om du känner dig lite förlorad just nu kan jag få en livlina för dig. Om du är en DesktopServer-användare är WP-CLI extremt lätt att installera. Sedan DesktopServer 3.8.2 finns en ny utvecklare plugin som installerar WP-CLI på Allt dina utvecklingsplatser!
När det är aktiverat kan du komma åt WP-CLI via huvudlistan för DesktopServer eller WordPress Toolbar.
Om du har tillgång till DesktopServer rekommenderar jag definitivt att du installerar WP-CLI så, eftersom det är den enklaste installationsmetoden. Jag har använt DesktopServer de senaste åren, så jag har tur att WP-CLI-installationen var en vind för mig.
Denna handledning riktar sig till nybörjare som är nya för WP-CLI, med hjälp av en lokal WordPress-installation. Om du vill utföra kommandon på en fjärrserver (dvs. en live WordPress-webbplats) kan du dock följa om du har WP-CLI installerad.
Du måste kunna ansluta till servern via en SSH-klient och ha praktiska inloggningsuppgifter för ditt värdkonto. När du är ansluten och inloggad kommer du kunna använda alla WP-CLI-kommandon i den här handledningen.
Det är värt att kontakta din värd för att se om de stöder WP-CLI eftersom installationen blir mycket enklare.
Förhoppningsvis kommer du nu att ha WP-CLI installerad, i vilket fall du kan koppla av lite som du just har gjort den svåraste delen!
Öppna ett kommandoradsfönster i rotkatalogen på WordPress-webbplatsen du vill arbeta med, vilket ska se ut som skärmbilden nedan.
En fördel med att använda DesktopServer är att det automatiskt öppnar ett kommandofönster som pekar på den rätta root-WordPress-webbplatskatalogen. Jag trodde det var en fin touch, speciellt om du arbetar på flera webbplatser.
Låt oss nu testa vår installation av WP-CLI. Detta är vårt första kommando ...
wp - info
PHP binär: C: \ xampplite \ php \ php.exe PHP-version: 5.5.24 php.ini används: C: \ xampplite \ php \ php.ini WP-CLI root dir: C: \ xampplite \ ds-plugins \ ds -cli \ -leverantör \ wp-cli \ wp-cli WP-CLI-paket dir: WP-CLI global config: WP-CLI-projektkonfiguration: WP-CLI-version: 1.0.0
Så, för att komma åt WP-CLI skriver du wp
följt av ett kommando och / eller parameter. Om wp
är inmatad, du får bara en lång lista över tillgängliga kommandon och parametrar (som jag inte kommer att visa här, men prova själv).
Vårt första kommando innehöll en parameter. Skillnaden är att en parameter föregås av två bindestreck. Nyckeln till WP-CLI är att nästan alla kommandon innehåller underkommandon (och parametrar). Denna hierarki är mycket välorganiserad och är lätt att förstå och följa.
Alla kommandon följer en liknande struktur, så när du har behärskat ett par kommandon hittar du det enkelt att expandera för att lära dig mer kommandon. Resten av denna handledning handlar om att lära sig några av de kommandon och parametrar som finns i WP-CLI.
Låt oss ta en titt på några grundläggande WP-CLI-kommandon, och deras produktion, för att få en känsla för hur det fungerar.
Låt oss först få den nuvarande versionen av WP-CLI som vi kör.
wp - version
WP-CLI 1.0.0
Vi kan köra ett liknande kommando för att hitta den nuvarande versionen av WordPress.
wp kärnversion
4.7.3
Vad sägs om en lista över alla teman som för tillfället installeras?
wp temlista
+-----------------+----------+--------+---------+ | namn | status | uppdatera | version | + ----------------- + ---------- + -------- + --------- + | tjugofemtern | inaktiv | ingen | 1,7 | | twentyseventeen | aktiv | ingen | 1.1 | | twentysixteen | inaktiv | ingen | 1,3 | | tjugo | inaktiv | ingen | 2,2 | +-----------------+----------+--------+---------+
Lägg märke till hur vi får användbar information, till exempel status för ett tema och dess version, såväl som om en uppdatering är tillgänglig.
Vi kan göra samma för plugins.
wp plugin lista
+-------------+----------+--------+------------+ | namn | status | uppdatera | version | + ------------- + ---------- + -------- + ------------ + | akismet | inaktiv | ingen | 3,3 | | hej | inaktiv | ingen | 1,6 | | temakontroll | inaktiv | ingen | 20160523.1 | +-------------+----------+--------+------------+
Vi kan använda parametrar för att förfina listan över plugins.
wp plugin list --fields = namn, version
+-------------+------------+ | namn | version | + ------------- + ------------ + | akismet | 3,3 | | hej | 1,6 | | temakontroll | 20160523.1 | +-------------+------------+
Här har vi en parameter som kräver att en eller flera värden anges. Det här är mycket vanligt, och du kommer bli van vid det här mycket snabbt. I det här fallet listade vi bara de fält vi ville visa (namn, version).
Vi kan också bara visa plugins som uppfyller specifika kriterier.
wp plugin list - status = inaktiv
+-------------+----------+--------+------------+ | namn | status | uppdatera | version | + ------------- + ---------- + -------- + ------------ + | akismet | inaktiv | ingen | 3,3 | | hej | inaktiv | ingen | 1,6 | | temakontroll | inaktiv | ingen | 20160523.1 | +-------------+----------+--------+------------+
Detta helt enkelt utmatade alla plugins igen eftersom de alla är för närvarande inaktiva. Vi ändrar detta inom kort när vi börjar skriva in kommandon för att hantera plugins (och teman).
Du kanske har märkt i kommandona ovan att det finns två kommandonord som används (plugin
och lista
). Om du skriver in wp-plugin
På egen hand kommer detta inte att köra ett kommando men lista alla underkommandon för wp-plugin
. Prova själv.
wp-plugin
användning: wp plugin aktivera [...] [--all] [--network] eller: wp plugin deaktivera [ ...] [--uninstall] [--all] [--network] eller: wp plugin delete ... eller: wp plugin få [--Field = ] [--fields = ] [--format = ] eller: wp plugin installera ... [--version = ] [--force] [--activate] [--activate-network] eller: wp plugin är installerat eller: wp plugin list [-- = ] [--field = ] [--fields = ] [--format = ] eller: wp plugin path [ ] [--dir] eller: wp plugin sökning [--Page = ] [--per-page = ] [--field = ] [--fields = ] [--format = ] eller: wp plugin status [ ] eller: wp plugin växla ... [- network] eller: wp plugin avinstallera ... [--deaktivera] [- skip-delete] eller: wp plugin update [ ...] [--all] [--format = ] [--version = ] [--dry-run] Se "wp help plugin 'för mer information om ett specifikt kommando.
Så lista
kommandot är bara en av flera underkommandon tillgängliga för "föräldern" plugin
kommando. Många andra kommandon fungerar på ett liknande sätt.
Skriv in wp kärna
och wp tema
för att se en lista med deras underkommandon också.
Du kan också använda flera parametrar på samma rad. Om vi till exempel vill lista proppar med tillgängliga uppdateringar och begränsa utmatade fält kan vi kombinera parametrar på en enda rad enligt följande:
wp plugin list --fields = namn, version --update = tillgängligt
Som standard får du resultat från ett WP-CLI-kommando utmatat i tabellformat, men det här kan enkelt ändras till JSON eller kommaseparerat värde (CSV) istället genom att använda --formatera
parameter.
wp plugin lista --format = json
[ "Namn": "Akismet", "Status": "inaktiva", "Uppdatera": "none", "version": "3.3", "namn": "hello", "status": "inaktiv " "uppdatera": "none", "version": "1.6", "namn": "tema-check", "status": "inaktiva", "update": "none", "version" "20160523,1"]
wp plugin lista --format = csv
namn, status, uppdatering, version akismet, inaktiv, ingen, 3,3 hej, inaktiv, ingen, 1,6 temakontroll, inaktiv, ingen, 20160523.1
Nu när vi har ett handtag om hur du anger grundläggande WP-CLI-kommandon, låt oss se hur vi kan göra några användbara WordPress-administrativa uppgifter via kommandoraden.
Den verkliga effekten av WP-CLI blir klar när du börjar manipulera WordPress via kommandoraden. I det här avsnittet ser vi hur lätt det är att installera / ta bort, och aktivera / inaktivera plugin och teman via WP-CLI.
För plugins och teman som finns i WordPress-förvaret anger du namnet efter Installera
kommando enligt följande:
wp plugin installera jetpack
Installera Jetpack av WordPress.com (4.8.2) Hämtar installationspaketet från https://downloads.wordpress.org/plugin/jetpack.4.8.2.zip... Paketerar paketet ... Installera plugin ... Plugin installerat framgångsrikt. Framgång: Installerad 1 av 1 plugins.
Låt oss skriva ut en lista med plugins igen, för att se till att Jetpack installerades, men den här gången skriver du bara in plugin-namnet.
wp list plugin --fields = namn
+-------------+ | namn | + ------------- + | akismet | | hej | | jetpack | | temakontroll | +-------------+
Vi kan installera teman på ett liknande sätt:
wp tema installation tjugo tjugo
Installera tjugo elva (2.5) Hämtar installationspaketet från https://downloads.wordpress.org/theme/twentyeleven.2.5.zip... Paketerar paketet ... Installera temat ... Tema installerat framgångsrikt. Framgång: Installerad 1 av 1 teman.
Och låt oss bara kolla att tjugo elva temat installerades korrekt:
wp temlista
+-----------------+----------+--------+---------+ | namn | status | uppdatera | version | + ----------------- + ---------- + -------- + --------- + | tjugoeven | inaktiv | ingen | 2,5 | | tjugofemtern | inaktiv | ingen | 1,7 | | twentyseventeen | aktiv | ingen | 1.1 | | twentysixteen | inaktiv | ingen | 1,3 | | tjugo | inaktiv | ingen | 2,2 | +-----------------+----------+--------+---------+
För plugins och teman som finns på andra ställen, skriv helt upp den fullständiga sökvägen till zip-filen. Plugin / temnamn är faktiskt slug, vilket är praktiskt att komma ihåg om ditt plugin / temnamn består av mer än ett ord.
Till exempel, för att installera plugin för temakontroll från WordPress-förvaret:
wp plugin installera temakontroll
För att aktivera ett plugin använder du Aktivera
kommando.
wp plugin aktivera jetpack
Eller du kan installera och aktivera ett plugin på en rad.
wp plugin installera jetpack - aktivera
Om du vill radera ett plugin använder du radera
kommando.
wp plugin delete jetpack
Observera att du inte behövde inaktivera plugin innan vi raderade det, vilket du måste göra i WordPress-administratören. Installationen / aktivera / ta bort processen är densamma för teman.
Det finns olika WP-CLI-kommandon för att hantera alla typer av inlägg, inklusive ett sätt att generera inlägg.
Låt oss först skriva ut den aktuella listan med inlägg.
wp-postlista
+----+---------+---------+---------+---------+ | ID | post_ti | post_na | post_da | post_st | | | tle | mig | te | atus | + ---- + --------- + --------- + --------- + --------- + | 1 | Hej w | hej-w | 2017-04 | publicera | | | verlden! | orld | -04 09: | | | | | | 18:12 | | +----+---------+---------+---------+---------+
Nu, låt oss skapa några inlägg.
wp-post generera - count = 5
Generera inlägg 100% [=============] 0:03 / 0:02
Låt oss ta en titt igen på den uppdaterade postlistan.
wp-postlista
+----+---------+---------+---------+---------+ | ID | post_ti | post_na | post_da | post_st | | | tle | mig | te | atus | + ---- + --------- + --------- + --------- + --------- + | 32 | Inlägg 2 | post-2 | 2017-04 | publicera | | | | | -14 19: | | | | | | 01:24 | | | 33 | Inlägg 3 | post-3 | 2017-04 | publicera | | | | | -14 19: | | | | | | 01:24 | | | 34 | Inlägg 4 | post-4 | 2017-04 | publicera | | | | | -14 19: | | | | | | 01:24 | | | 35 | Post 5 | post-5 | 2017-04 | publicera | | | | | -14 19: | | | | | | 01:24 | | | 36 | Inlägg 6 | post-6 | 2017-04 | publicera | | | | | -14 19: | | | | | | 01:24 | | | 1 | Hej w | hej-w | 2017-04 | publicera | | | verlden! | orld | -04 09: | | | | | | 18:12 | | +----+---------+---------+---------+---------+
Som du kan se har fem nya inlägg skapats, var och en med en generisk titel och inget inlägg. Vi kan generera ett antal inlägg och för vilken posttyp som helst.
wp-post generera --post_type = page --count = 3
Generera inlägg 100% [=============] 0:02 / 0:03
Detta genererar tre nya sidor med generiska titlar och inget sidinnehåll. Jag är inte så säker på hur användbart skapandet av masspost är. Det kan dock vara ganska användbart för teständamål.
wp-postlista - post_type = sida
+----+---------+---------+---------+---------+ | ID | post_ti | post_na | post_da | post_st | | | tle | mig | te | atus | + ---- + --------- + --------- + --------- + --------- + | 42 | Page 2 | post-2 | 2017-04 | publicera | | | | | -14 19: | | | | | | 06:21 | | | 43 | Page 3 | post-3 | 2017-04 | publicera | | | | | -14 19: | | | | | | 06:21 | | | 44 | Page 4 | post-4 | 2017-04 | publicera | | | | | -14 19: | | | | | | 06:21 | | | 22 | Titel | titel | 2017-04 | publicera | | | | | -07 15: | | | | | | 42:27 | | | 2 | Prov | prov- | 2017-04 | publicera | | | Sidan | sida | -04 09: | | | | | | 18:12 | | +----+---------+---------+---------+---------+
Om vi vill skapa individuella inlägg har vi full kontroll över inläggets innehåll. Låt oss skapa ett enda inlägg med en viss titel och provinnehåll.
wp post create --post_title = 'Bara en post' - post_content = 'Jag vandrade ensam som ett moln.' --post_status = 'publicera'
Framgång: Skapat inlägg 45.
Detta skapar ett inlägg med en viss titel och innehåll. Som standard kommer inlägg att skapas med utkastsstatus, så om vi vill att de ska publiceras genast måste vi ställa in post_status
parameter till publicera
.
Skapa en sida med innehåll är lika enkelt - sätt bara in post_type
parameter till sida
(det här ställs in som standard).
wp post skapa --post_type = page --post_title = 'Välkommen till en ny daggry' --post_content = 'Läs vidare för några fantastiska insikter.' --post_status = publicera
Vi kan också uppdatera befintliga inlägg med hjälp av uppdatering
kommando.
wp post update 45 --post_content = 'Jag uppdaterade just postinnehållet via WP-CLI.' --post_status = 'publicera'
Framgång: Uppdaterad efter 45.
Kontrollera att post-ID är korrekt; annars får du en Varning: Ogiltigt post-ID
felmeddelande. Och igen kan du uppdatera en posttyp, inte bara inlägg!
Som du kan förvänta dig kan du också ta bort inlägg via WP-CLI.
wp post delete 45
Framgång: Trashed post 45.
Detta skickar posten till papperskorgen. Om du vill kringgå detta och bara radera ett inlägg permanent lägger du till --tvinga
parameter.
wp-posten radera 45 --force
Totalt tycker jag att det är ganska intuitivt att hantera inlägg via WP-CLI. Det känns inte som att jag skulle behöva komma ihåg mycket detaljer varje gång jag vill skapa eller uppdatera ett inlägg.
Det här är bra eftersom det betyder att jag är mycket mer sannolikt att fortsätta komma tillbaka till WP-CLI istället för att smyga tillbaka till att använda det mysiga WordPress admin-användargränssnittet. Jag är vanligare med.
Hantera kommentarer liknar inlägg. För att se alla kommentarer på din webbplats, använd det här kommandot:
wp kommentarlista
+------------+-----------------+---------------------+------------------+-----------------------+-------------------------+ | comment_ID | comment_post_ID | comment_date | comment_approved | comment_author | comment_author_email | + ------------ + ----------------- + ------------------ --- + ------------------ + ----------------------- + --- ---------------------- + | 1 | 1 | 2017-04-04 09:18:12 | 1 | En WordPress Commenter | [email protected] | +------------+-----------------+---------------------+------------------+-----------------------+-------------------------+
Var försiktig, men det kan ta en stund om du har mycket kommentarer på din webbplats!
För att skapa en kommentar, använd skapa
kommando som vi nu är bekanta med.
wp comment create --comment_post_ID = 1 --comment_content = 'Bara att lägga till min 2 cent värda!'
Framgång: Skapat kommentar 24.
wp kommentarlista
+------------+-----------------+---------------------+------------------+-----------------------+-------------------------+ | comment_ID | comment_post_ID | comment_date | comment_approved | comment_author | comment_author_email | + ------------ + ----------------- + ------------------ --- + ------------------ + ----------------------- + --- ---------------------- + | 24 | 1 | 2017-04-14 19:24:45 | 1 | | | | 1 | 1 | 2017-04-04 09:18:12 | 1 | En WordPress Commenter | [email protected] | +------------+-----------------+---------------------+------------------+-----------------------+-------------------------+
Observera att för att skapa en kommentar, behövde vi ange ett ID för ett befintligt inlägg, såväl som kommentarinnehållet.
Precis som vi gjorde för inlägg, kan masskommentarer också enkelt genereras.
wp kommentar generera --count = 3 --post_id = 1
Genererar kommentarer 100% [==========] 0:02 / 0:03
wp kommentarlista
+------------+-----------------+---------------------+------------------+-----------------------+-------------------------+ | comment_ID | comment_post_ID | comment_date | comment_approved | comment_author | comment_author_email | + ------------ + ----------------- + ------------------ --- + ------------------ + ----------------------- + --- ---------------------- + | 26 | 1 | 2017-04-14 19:27:54 | 1 | | | | 27 | 1 | 2017-04-14 19:27:54 | 1 | | | | 25 | 1 | 2017-04-14 19:27:53 | 1 | | | | 24 | 1 | 2017-04-14 19:24:45 | 1 | | | | 1 | 1 | 2017-04-04 09:18:12 | 1 | En WordPress Commenter | [email protected] | +------------+-----------------+---------------------+------------------+-----------------------+-------------------------+
Var noga med att ange räkna
parameter om du inte vill ha 100 dummy kommentarer genererade, eftersom 100 är standardvärdet!
För att radera en kommentar, använd helt enkelt kommandot med ditt kommentars ID och valfritt --tvinga
parameter om du vill hoppa över att skicka den till papperskorgen.
wp comment delete 26 - force
Framgång: Deleted comment 26.
Kom ihåg, men ID är här ett kommentator-ID och inte ett post-ID.
Det är det för vår grundläggande introduktion till WP-CLI. Nedan finns en lista över resurser om du vill gräva lite djupare och utöka din kunskap.
Vi har precis repat ytan på vad du kan göra med WP-CLI. Men förhoppningsvis kommer du nu ha tillräckligt med förtroende för att dyka djupare in i WP-CLI och experimentera med mer avancerade kommandon.
Vi lärde oss vad WP-CLI är och hur användbart det kan vara i din dagliga WordPress-utveckling. Även om de kommandon vi täckte var ganska grundläggande var de fortfarande ganska användbara!
Det var första gången jag personligen använde WP-CLI, och i efterhand kan jag ärligt säga att jag inte vet hur jag lyckades utan det. Det är definitivt något jag ser mig själv med mycket mer.
Jag skulle vilja få lite erfarenhet med mycket mer komplexa kommandon bredvid att verkligen se vad du kan göra med WP-CLI.
Vissa användare, särskilt nybörjare, kan dock avstängas av den standard rekommenderade installationsprocessen. Det är synd eftersom WP-CLI är extremt användbar och alla WordPress-utvecklare bör åtminstone kolla in det.
Det är jättekul, liksom att vara användbart. Om du har tillgång till DesktopServer använder du definitivt det för att installera WP-CLI-det är verkligen en no-brainer.
Slutligen, om du är intresserad av mer WordPress-utveckling, glöm inte att kolla in det andra WordPress-materialet vi har här på Envato Tuts+.
Använder du redan WP-CLI, eller var det första gången du experimenterade med det? Om så är fallet, hur gick du vidare? Jag skulle gärna höra dina kommentarer!