Under större delen av sin livstid har WordPress byggts med en enkel kodbas med lite objektorienterad PHP som det mest abstrakta systemet. Under de senaste åren håller dock detta på att förändras till det bättre. Från enhetstestning till CSS-förbearbetning 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 för 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 så mycket mer.
WP-CLI har varit ett projekt med öppen källkod 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 snabba upp WordPress-utvecklares arbetsflöden.
Under årens lopp har projektet vuxit till att bli så mycket mer! Det blir nu även ett krav för andra öppen källkods-projekt som Trellis och Bedrock. Från och med januari 2017 har WP-CLI officiellt flyttat till WordPress.org och Alain Schlesser är nu också med och underhåller det.
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 som den nya versionen förde med sig. Om du är en Kinsta-klient är WP-CLI v2.0.1 som standard installerat på alla våra servrar, använd helt enkelt SSH för att få åtkomst till din server för att komma igång. SSH-åtkomst ingår i alla våra hostingplaner (Det går inte att ansluta via SSH? Så fixar du SSH-felet ”Anslutning nekad”).
- Skaffa WP-CLI
- Grunderna i WP-CLI
- WP-CLI-kommandon i allmänhet
- Användbara exempel
- Att fjärranvända WP-CLI
- Att använda Bash-skript
Skaffa WP-CLI
Det lägsta PHP-kravet på WP-CLI v2.0. 0 har höjts till PHP 5.4. Även om det här är ett steg i rätt riktning 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 för alla Kinsta-installationer, av både säkerhets- och prestandaskäl. Vi har även 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 som följer: skriv dessa tre kommandon, ett efter ett.
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
Om något går fel eller om du använder Windows, kan du läsa 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 likadan om du vill installera WP-CLI på din server. Kom ihåg att WP-CLI redan är installerat för Kinsta klienter. 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 kraftfullt i sig men kan ge dig ännu mer kontroll och hastighetsvinster om 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 fyll
wp-config.php
- Skapa databasen
- Installera WordPress
- Installera och aktivera eventuella plugins du behöver
- Installera och aktivera ett tema
- Ladda ner och lägg till testinnehåll
Detta skulle vara de 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 är plugins inblandade. Att utfärda ett enda kommando är som du ser mycket snabbare.
WP-CLI-kommandon i Allmänhet
Om du är van vid att arbeta i terminalen är WP-CLI inget speciellt. Kommandon börjar alltid med wp
följt av ett kommando och underkommando, följt av obligatoriska och valfria parametrar, som detta:
wp command subcommand requiredparam --optionalparam --optionalparam2=value
Låt oss installera ett tema för att se hur det fungerar med ett riktigt kommando:
wp theme install twentyseventeen --activate
Detta kommer att installera och aktivera temat Twenty Seventeen på din WordPress-installation.
Observera att WP-CLI kommer att arbeta med den WordPress-installation du för närvarande använder i terminalen. Om du byter katalog för att gå till en annan WordPress-installation, kommer det att arbeta med den istället.
Användbara Exempel
Det var WP-CLI i ett nötskal! Även om det finns flera avancerade saker du kan göra, och som vi kommer till om ett ögonblick, vet du redan nu tillräckligt för att komma igång och göra det du behöver göra. Jag rekommenderar att du tittar på kommandolistan, och provar några av dem. Vi tar en titt på några användbara saker här, och går sedan vidare till att använda WP-CLI över SSH och att använda bash-skript.
Installera WordPress
Jag använder ofta WP-CLI för att ställa in testmiljöer, vars första steg är en standardinstallation. Här är en lista över de kommandon jag kör:
wp core download
wp core config --dbname=mydbname --dbuser=mydbuser --dbpass=mydbpass --dbhost=localhost --dbprefix=whebfubwef_ --extra-php <<PHP
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
PHP
wp db create
wp core install --url=http://siteurl.com --title=SiteTitle --admin_user=username --admin_password=mypassword [email protected]
Ser du 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 extra konstanterna ser till att vi har våra felsökningsalternativ för testning. Här är en detaljerad guide 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-kärnan
Du kan också installera om WordPress-kärnan med WP-CLI. Följande kommando skulle ladda ner WordPresskärnan utan standardteman och plugins.
wp core download --skip-content --force
Ändra WordPress-URL
Det finns många anledningar till att du kanske behöver eller vill ändra din WordPress-URL. Kanske byter du domän, flyttar till en subdomän, uppdaterar från www till icke-www, flyttar omkring filer, eller till och med migrerar från HTTP till HTTPS. Oavsett 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 Nuvarande Plugins med Detaljer
För att få en lista över aktuella plugins som är installerade på en webbplats, använd bara följande kommando. I det här exemplet kan du se att vi har pluginsen Schema och Yoast SEO installerade. Det kommer också att returnera status (aktiv/inaktiverad), om det finns en uppdatering tillgänglig, och den aktuella versionen.
wp plugin list
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 arkivet. Det enklaste sättet att ta reda på dem är att besöka deras sida och titta på webbadressen eller att använda wp plugin search searcterm
som ger dig en lista i terminalen.
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 coolare är att du kan installera plugins från fjärrfiler, inte bara arkivet, vilket är praktiskt om du utvecklar ett plugin, eller använder ett premiumplugin. Följande kommando installerar två plugins från arkivet och ett 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
Det här kommandot ovan kan vara praktiskt om du felsöker kompatibilitetsproblem och helt enkelt behöver inaktivera alla plugins på en och samma gång. Du kan sedan gå tillbaka och aktivera dem ett efter ett, och testa efterhand.
Uppdatera Plugins
Du kan också manuellt uppdatera WordPress-plugins. Exempel nedan:
wp plugin update wordpress-seo
Sök och Ersätt i Databasen
En av de främsta anledningarna till att det är svårt att migrera en webbplats genom att bara kopiera-klistra in en databas är att databasen innehåller serialiserade arrayer. Om du behöver ersätta alla instanser av http://testsite.com
med http://livewebsite.com
kommer dina serialiserade arrayer inte att vara till någon nytta eftersom strängantalet inte matchar.
Kommandot search-replace
avserialiserar arrayerna först, utför sedan en sök och ersätt och återserialiserar sedan arrayerna. Du kan göra detta med ett enkelt kommando:
wp search-replace oldstring newstring
Ytterligare parametrar låter dig göra mycket mer, inklusive att förhandsgranska vad som kommer att ersättas med hjälp av --dry-run
.
Import och Export
Det finns två sätt att exportera innehåll med WP-CLI. Du kan skapa en XML-fil, precis som WordPress exportverktyg gör, eller så kan du exportera/importera den råa databasen. Jag tycker att det senare är mycket mer användbart för 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. Det fungerar perfekt, men var noga med att inte skriva över något du behöver, import kommer i princip dumpa den befintliga databasen och använda den medföljande SQL-filen i stä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 inte faktiskt rollerna inom ditt plugin.
wp role create organizer Organizer
wp cap list 'editor' | xargs wp cap add 'organizer'
wp cap add 'organizer' 'manage-events'
Kommandona ovan skapar en ny roll (Organizer, eller arrangör), lägger till alla funktioner från redigeringsrollen till den och lägger sedan till en ny funktion: hantera event. Med rätt kommandon kan du använda WP-CLI för att ändra ditt WordPress-lösenord.
Generera Testdata
Jag älskar alla slags fejkfunktioner – de som lägger till dummy-innehåll till din webbplats som du kan använda för tester. WP-CLI har ett par av dessa inbyggda, och här är några funktioner som kommer att generera användare, termer och inlägg.
wp user generate --count=5 --role=editor
wp user generate --count=10 --role=author
wp term generate --count=12
wp post generate --count=50
Hantera WP-Cron-händelser
Du kan hantera WP-Cron-händelser och eller ett WordPress-Cronjobb i WP-CLI. Till exempel kommer följande kommando att ge dig din nuvarande cron-händelselista.
wp cron event list
Radera Transienter
Du kan även ta bort och rensa bort en eller alla transienter med följande kommando.
wp transient delete --all
Om du kör multisite behöver du ett lite mer komplicerat kommando. Som standard kollar kommandot endast wp_options
-tabellen. Det kollar inte wp_1_options
, wp_2_options
, etc.
wp transient delete --all --network && wp site list --field=url | xargs -n1 -I % wp --url=% transient delete --all
Städa upp i wp_options-tabellen
Wp_options-tabellen kan vara en vanlig syndabock för långsamma förfrågningstider på din webbplats på grund av autoladdade data som är kvar från tredjepartplugins och teman. Kolla in denna jättebra artikel från WP Bullet om hur du använder WP-CLI att rensa upp i din wp_options tabell.
Ta bort WordPress-revideringar
På stora webbplatser kan WordPress-revideringar mycket snabbt bli till tusentals rader i din databas som inte behövs. Du kan ta bort inläggsrevideringar med WP-CLI. Här är ett exempel på kommandot:
$ wp post delete $(wp post list --post_type='revision' --format=ids)
Kontrollera Underhållsläget
Från och med WP-CLI v2.2.0 kan du nu kontrollera underhållsläget på din WordPress-webbplats. Exempel:
wp maintenance-mode activate wp maintenance-mode deactivate wp maintenance-mode status
Indexering av data med Elasticsearch
Elasticsearch är en fulltextsökmotor med öppen källkod. Det används för att indexera data och genomsöka dessa data otroligt snabbt. Vi erbjuder detta som tillägg för Kinsta-klienter. Du kan använda ElasticPress WP-CLI-kommandon för att utföra indexering över SSH. Exempel:
wp elasticpress index [--setup] [--network-wide] [--posts-per-page] [--nobulk] [--offset] [--show-bulk-errors] [--post-type]
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. Till exempel kan du skapa en POT-fil för ett WordPress-plugin eller tema.
wp i18n make-pot [] [--slug=] [--domain=] [--ignore-domain] [--merge[=]] [--exclude=] [--skip-js]
Se i18n-kommandodokumentationen.
Att använda WP-CLI med WooCommerce
Jobbar du med e-handelswebbplatser? 🛒 Vi rekommenderar att du kollar in Robot Ninjas fantastiska WP-CLI WooCommerce-utvecklingsguide för snabba och enkla kommandon du kan använda. Att generera en lista över kunder, order, och till och med skapa mass-produkter är helt möjligt med WP-CLI.
Att Fjärranvända WP-CLI
En av de bästa sakerna som du kan göra med WP-CLI är hantera din fjärrinstallationer för WordPress Detta är verkligen en webbplatshanterares dröm.
För att smidigt köra WP-CLI-kommandon på en fjärrserver via SSH behövde du tidigare tilläggskommandot wp-cli-ssh. Men från och med v0.24.0, är detta nu en del av själva WP-CLI! 👏
Viktigt: Du behöver WP-CLI installerat både på datorn du kör kommandot från och på din server.
Konfigurera Fjärrservrar
Du kan konfigurera dina servrar globalt eller lokalt. För att konfigurera dem globalt använd config.yml
-filen. Du kan också använda wp-cli.yml
eller wp-cli.local.yml
-filerna i din nuvarande arbetskatalog.
Konfigurationen av servrar fungerar ungefär så här, klistra in det här i en av de nämnda filerna:
ssh:
staging:
cmd: ssh %pseudotty% [email protected] %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ärr-webbplats:
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 hoppa över det också. Ta en titt på den här artikeln för att konfigurera det.
Att använda Bash-skript
Bash-skript sparar dig ännu mer tid genom att automatisera uppgifter. Kommer du ihåg hur vi behövde skriva en hel del kommandon för att installera WordPress? Du kan göra det med ett enda bash-skript. Öppna en katalog och skapa en install.sh
-fil där. Klistra in samma kod som vi använde innan i filen och spara den.
wp core download
wp core config --dbname=mydbname --dbuser=mydbuser --dbpass=mydbpass --dbhost=localhost --dbprefix=whebfubwef_ --extra-php <
Allt du behöver göra nu är att skriva in bash install.sh
och allt kommer att göras åt dig, utan inblandning från användaren. 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=clientA
wp ssh core update --host=clientB
wp ssh core update --host=clientC
wp 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 på en och samma gång.
Sammanfattning
WP-CLI är verkligen utvecklarens och webbplatshanterarens dröm. Som utvecklare kan vi skapa testwebbplatser i ett nafs, lägga till testinnehåll och trolla med import/export på alla möjliga sätt. Webbplatshanterare kan sköta webbplatsuppdateringar och andra uppgifter för flera webbplatser med enkla kommandon. Se till att kolla in WP-CLI v2:s release-anteckningar!
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 jättebra funktioner! Om du stöter på problem, se till att kolla in WP-CLI:s dokumentation över vanliga problem.
Glöm inte att Kinstas Google Cloud-baserade arkitektur stöder WP-CLI direkt vid start. Om du vill prova den mest moderna WordPress-hostingarkitekturen och få tillgång till bra verktyg som WP-CLI, testa vår hanterade WordPress-hosting.
Lämna ett svar