Använda wp-cli för kul och vinst

Se hur du kan utföra vanliga WordPress-uppgifter snabbare eller till och med automatisera dem med hjälp av bashas kraft.


Vad är wp-cli?

wp-cli är ett verktyg för att styra WordPress genom ett konsolfönster.

När WordPress-administratörsgränssnittet är så vackert och lätt att använda är den naturliga frågan: varför skulle du någonsin använda ett kommandoradsgränssnitt?

Det finns två huvudorsaker:

  • Tangentbordet är snabbare än musen - För strömanvändare kan skrivning av kommandon vara storleksordningar snabbare än att trycka på en knapp i en webbläsare.
  • Scripting - Du kan lägga flera kommandon i en textfil och få den att köras automatiskt.

I denna handledning kommer jag att ge dig en smak av vad wp-cli är bra för.


Installera wp-cli

Innan du använder det behöver du några saker:

  1. UNIX-liknande skal - Om du är på en Mac eller på Linux kan du köra WP-Cli på din lokala dator. Om du är på Windows kan du logga in på din Linux-server via Putty och installera wp-cli där.

  2. PHP 5.3+ och php-cli-verktyget - Du kan se om du har dessa genom att köra följande kommando:

    php -v
  3. Git - Det här är vad vi ska använda för att installera och uppdatera wp-cli.

Wp-cli-projektet är fortfarande i sin linda, så det bästa sättet att hålla sig på de senaste versionerna är att klona det från github:

 git klon --recurse-submodules git: //github.com/andreascreten/wp-cli.git ~ / git / wp-cli cd ~ / git / wp-cli sudo utils / build-dev

~ / Git / wp-cli är katalogen där wp-cli kommer att installeras. Känn dig fri att ändra den till vad du vill.

Det är allt. Nu den wp kommandot bör vara tillgängligt:

 cd / var / www / public_html / wordpress wp

På Multisite

Om du vill använda wp-cli på en multisite-installation måste du bestämma vilken blogg du vill använda på:

 wp --blog = myblog.mynetwork.com

För att undvika att behöva passera --blog parameter för varje kommando kan du lagra det i en särskilt namngiven fil:

 echo 'myblog.mynetwork.com'> wp-cli-bloggen

wp-cli kommer att läsa den filen om det inte finns något --blog parameter.


Hantering Core

Låt oss först se vilken version av WordPress vi hanterar:

 wp kärnversion --extra

För att utföra en uppdatering behöver du bara skriva:

 wp kärna uppdatering

Hantering Plugins

Låt oss se vilka plugins vi har installerat:

 wp plugin status

Huh, det verkar att det finns en uppdatering tillgänglig för Akismet. Låt oss installera det:

 wp plugin uppdatering akismet

Låt oss nu installera och aktivera ett plugin från wordpress.org:

 wp plugin installera google-sitemap-generator - aktivera

Du kan också installera utvecklingsversionen av ett plugin:

 wp plugin installera google-sitemap-generator - aktivera --dev

Åh, och se, det finns ett nytt kommando tillgängligt nu:

 wp google-sitemap

Vi kan snabbt byta ett plugin från aktiv till inaktiv och vice versa:

 wp plugin växla google-sitemap-generator

Det här är ett bra sätt att felsöka aktiveringskrokar.

På samma sätt kan du köra ett avinstallationsprocedur för plugin utan att radera pluginfilerna:

 wp plugin avinstallera google-sitemap-generator

Och såklart kan du också ta bort pluginprogrammet:

 wp plugin ta bort google-sitemap-generator

Hantering av teman

Vi har några kommandon för att arbeta med teman också:

 wp temat status

Till skillnad från plugins kan du bara ha ett enda tema i taget, så aktiverar ett tema automatiskt "deaktivera" den tidigare:

 wp-tema aktiverar tjugo

Och här är ett litet knep för att gå in i katalogen för ett visst tema:

 cd $ (wp temat väg twentyeleven)

Generera data

Om du skriver ett tema och du vill ställa in paginering kommer du att behöva mycket inlägg. Här är det snabbaste sättet att få dem:

 wp generera inlägg - antal = 1000

Om du vill ställa in en lista med användare kan du också skapa några av dem:

 wp generera användare --role = författare

Du kan också skapa enskilda användare:

 wp användare skapa stan [email protected]

Skapa exportfiler

Du kanske vill regelbundet exportera ditt innehåll till en WXR-fil.

 wp export - path =. / --user = admin

Du kan skicka ytterligare parametrar för att begränsa vilken innehåll som exporteras, till exempel --kategori, --start datum etc.


Ändra alternativ på flygningen

Det finns raka kommandon för CRUD operationer på alternativ:

 wp alternativet få permalink_structure wp alternativ lägg till foo bar wp alternativ ta bort foo

Du vill inte göra det regelbundet, eftersom de flesta alternativ är begränsade till vissa värden. Men det kan komma till nytta i skript.


Databasoperationer

Om du vill säkerhetskopiera databasen skriver du bara:

 wp db dumpning

Eller kanske du behöver göra en snabb fråga för att hitta när det senaste inlägget publicerades:

 wp db query "VÄLJ MAX (post_date) från wp_posts VAR post_type = 'post' och post_status = 'publicera'"

Att öppna en interaktiv MySQL-session för att göra lite diagnostik är lika enkelt:

 wp db cli

Kör godtycklig kod

Ibland är det enda sättet att berätta wp-cli vad du vill ha genom att beskriva det i PHP-kod:

 wp eval-file gör-my-laundry.php

Med ovanstående kommando kommer wp-cli först ladda WordPress och sedan ladda och exekvera din PHP-fil.

Det här är användbart för att distribuera skript eller för andra komplexa åtgärder som inte kan uppnås med hjälp av inbyggda kommandon.

Du kan också vidarebefordra PHP-kod:

 wp eval 'echo WP_CONTENT_DIR;'

Skapa egna kommandon

Tro det eller ej, wp-cli är skrivet mestadels i PHP. Varje kommando är en klass, med varje metod som representerar en underkommando.

Det snygga är att du kan skapa din egen klass, lägga den i ett plugin och wp-cli kommer automatiskt att känna igen det som en av det egna. En detaljerad handledning för att skapa kommandon finns i projektwiki.


Slutsats

Jag hoppas att jag har övertygat dig om att åtminstone ge wp-cli ett försök. Om du har hittat en bugg eller om du har en funktionsförfrågan, överväg att öppna ett problem.

Har ett intressant användarfall för wp-cli? Vänligen dela den i kommentarerna nedan.