WP-CLI Guiden: Administrera WordPress mer effektivt med WP-CLI

Lär dig hur du kan administrera WordPress mera effektivt med hjälp av kommandotolk och WP-CLI. När du väl lärt dig det kan du inte klara dig utan!

WP-CLI guide: hur man använder WP-CLI

De flesta är vana vid att jobba med WordPress med webbgränssnittet WP Admin som ju är hyfsat användarvänligt och som låter en kontrollera de flesta aspekterna av ens WordPress-hemsida.

Men, det är inte alla som känner till att det även finns ett sätt att jobba med WordPress genom en kommandotolk (också kallat Command Line Interface) eller vad det finns för fördelar med det.

Därför tänkte vi här visa hur man använder WP-CLI och ett par olika situationer då det är det perfekta verktyget att använda.

Det kan kanske kännas som överkurs och lite väl komplicerat till en början, men när man väl har kommit igång med WP-CLI så är det omöjligt att klara sig utan.

Häng med och låt dig övertygas! 🙂

Vad är WP-CLI?

WP-CLI har funnits sedan 2011 och har sakta men säkert blivit allt mer populärt i utvecklarkretsar sedan dess. Men vad är egentligen WP-CLI och hur kan du använda dig utav det när du jobbar med WordPress?

WP-CLI
WP-CLI låter dig styra WordPress via kommandotolk

Tanken bakom WP-CLI är att låta dig kontrollera och jobba med WordPress via kommandotolk som ett komplement till webbgränssnittet WP Admin.

Att utföra saker via kommandotolk istället för i webbläsaren kan vara till fördel då det ofta låter en utföra vissa saker snabbare.

Installera WP-CLI

Hur man installerar WP-CLI är inget vi tänkt att gå igenom i denna artikel, utan hör med ditt webbhotell hur du gör för att ansluta, och erbjuder inte ditt webbhotell tillgång till SSH och WP-CLI så är det kanske läge att överväga en flytt.

Ifall du är mer tekniskt kunnig och har din WordPress-sida på en VPS som du rattar själv och då behöver installera WP-CLI för egen hand så rekommenderar vi att du börjar läsa de officiella installationsanvisningarna.

1. Anslut via SSH

För att kunna jobba med WP-CLI på en WordPress-installation som finns online så behöver du först ansluta till servern via SSH.

Exakt hur man ansluter med SSH varierar beroende på om du har Windows eller macOS samt vad ditt webbhotell tillåter för autentiseringsmetod. Ibland används gammalt hederligt användarnamn och lösenord för att ansluta, medan andra bara erbjuder den säkrare metoden beståendes av en private key och public key-parning.

Oavsett om du använder en Mac eller Windows så fungerar allt på samma när du väl är ansluten via SSH.

1.1 SSH på Windows

Windows, till skillnad från macOS, saknar en inbyggd SSH-klient så därför behöver du först ladda ner ett program för att kunna komma igång med SSH och WP-CLI, om du använder Windows.

En mycket känd och populär SSH-klient för Windows är PuTTY, och den är också helt gratis.

PuTTY
PuTTY är en populär SSH-klient för Windows

Efter att du laddat hem PuTTY så ansluter man till sin server på ett sätt som är mycket likt hur man ansluter till FTP, så har du någon gång använt FTP förut så är det inga större konstigheter att använda PuTTY för att ansluta via SSH heller.

Du öppnar helt enkelt PuTTY och fyller där i adressen till servern som du vill ansluta till och trycker på ”Open”.

SSH med PuTTY
Skriv in adressen till servern som du vill ansluta till

Efter det så behöver du också mata in ditt användarnamn och lösenord.

SSH med PuTTY
Sedan matar du in användarnamn och lösenord

Nu är vi anslutna via SSH med PuTTY!

1.2 SSH på Mac

Om du använder en Mac å andra sidan så finns en SSH-klient inbyggd i appen som heter ”Terminal”.

Mac Terminal
Mac Terminal

För att ansluta via SSH på en Mac så öppnar du helt enkelt Terminal och skriver där:

ssh användarnamn@domän.se

Efter att du tryckt på enter kommer du bli ombedd att ange ditt lösenord, om din server använder användarnamn och lösenord som autentiseringsmetod. Annars kan du specifiera vilken privatekey som du vill använda på följande sätt:

ssh -i ~/.ssh/namn_pa_privatekey användarnamn@domän.se
SSH på Mac
Anslut via SSH på en Mac i Terminal

Nu är vi anslutna via SSH i Terminal och kan börja arbeta!

1.3 Navigera till WordPress-mappen

När du väl är ansluten via SSH så behöver du först navigera till mappen där din WordPress-installation ligger innan du kan börja använda dig av WP-CLI.

Du kan börja med att skriva in detta för att se en lista över vad som finns i mappen som du just nu befinner dig i:

ls -l
ls -l
Med ls -l får du upp en lista över mappar och filer

Exakt var mappen med WordPress ligger och vad den heter varierar mellan olika webbhotell, men några vanliga namn är public_html och www. Mappen kan även vara döpt efter ditt domännamn om du har mer än en WordPress-installation på en och samma server.

I vårt fall så råkar vi veta att den sida som vi vill kontrollera ligger i en mapp som heter app_1661 och då skriver vi in följande för att navigera dit:

cd app_1661

1.4 Verifiera att du kommit rätt

För att verifiera att man är i rätt mapp och kontrollerar just den WordPress-installation som man har för avsikt att kontrollera så kan man skriva in detta och sedan trycka enter:

wp option get siteurl

Om WP-CLI är installerat och om du befinner dig i en mapp där det finns en WordPress-installation så får då man reda på vilken WordPressadress (URL) som är satt i WP Admin.

wp option get siteurl
wp option get siteurl talar om vilken sida du kontrollerar

2. Lista på kommandon

Nu är du redo att börja jobba med WP-CLI, men hur vet man vilka kommandon som finns i WP-CLI? För att få upp en lista på alla tillgängliga kommandon så kan du köra kommandot:

wp
Lista på WP-CLI kommandon
wp ger dig en lista på alla kommandon

Tryck sedan på Q-tangenten eller CTRL+C för att komma ur listan.

För en fullständig lista på kommandon så kan du även se den officiella handboken i din webbläsare.

3. Uppdatera WordPress

En sak som är otroligt smidig med WP-CLI är möjligheten att snabbt kunna kolla vilken version av WordPress man använder sig utav, och för att se det så kör du helt enkelt:

wp core version

För att kolla om det finns någon uppdatering utav WordPress tillgänglig för nedladdning så kan istället köra:

wp core check-update
wp core version
wp core version låter dig se vilken version av WordPress som används

Om det är så att det finns en nyare version av WP än den som finns installerad på din sida idag så kan du snabbt och enkelt även uppdatera WordPress genom att köra:

wp core update

Så enkelt är det att se till så att man kör senaste versionen av WordPress med hjälp av WP-CLI!

4. Kontrollera användare

Med WP-CLI så är det också oerhört enkelt att snabbt kunna kontrollera användare i WordPress.

För att få en lista på samtliga användare i din WP-installation så kan du köra:

wp user list

Det går också utmärkt att filtrera resultatet, så om du exempelvis bara vill se en lista på alla administratörer så kan du lägga till --role=administrator på slutet, så här:

wp user list --role=administrator

4.1 Byt lösenord

Låt säga att du inte varit inloggad på WP Admin på väldigt länge och glömt bort ditt lösenord så kan du byta lösenord på en användare så här:

wp user update 1 --user_pass="q7gdq,tvjH>YWov4LhVi"
wp user update
wp user update låter dig ändra befintliga konton

Notera att i ovan exempel så använde vi oss av användarens ID-nummer (1) för att tala om vilken användare vi vill ändra, men det går också bra att istället ange användarnamn eller epostadress för att identifiera en användare. Notera också att du kan, och bör förstås, byta till ett eget lösenord och inte använda samma som i exemplet ovan. Lösenord innehållandes specialtecken måste omslutas med citationstecken.

4.2 Skapa ny användare

Om det istället är så att du inte har något konto på den sida som du är inne och kontrollerar med WP-CLI så kan du skapa ett helt nytt administratörskonto på följande sätt:

wp user create anvandarnamn epost@exmpel.se --user_pass="Bvi(Hs{sVg4fkuBn6gqf" --role=administrator

Kommandot ovan fungerar hur bra som helst för att sätta upp ett nytt konto i WordPress, men det kan ibland vara krångligt att skriva in så många parametrar på en gång. Ett enklare sätt att sätta upp ett konto är att istället köra:

wp user create --prompt

Då blir du istället ombedd att steg för steg ange alla olika parametrar. Användarnamn och epostadress är obligatoriska att ange, medan allt annat är valfritt och kan hoppas över genom att bara trycka på enter.

wp user create prompt
med wp user create –prompt skapar du enkelt nya konton

5. Kontrollera plugins

WP-CLI gör det också snabbt och enkelt att lista, uppdatera, installera och inaktivera plugins på din WordPress-sida. För att lista alla plugins som finns installerade på sin sida så kör du:

wp plugin list

Då får du upp en lista på alla plugins som är installerade, status som talar om vilka som är aktiverade, ifall uppdateringar finns tillgängliga samt vilken version av pluginet som är installerat.

5.1 Uppdatera plugins

Du kan också uppdatera alla plugins på din sida med hjälp av WP-CLI på följande vis:

wp plugin update --all
wp plugin update --all
wp plugin update –all låter dig uppdatera alla plugins

Enkelt, va?

5.2 Installera nytt plugin

Det går också bra att ladda hem och installera nya plugins med hjälp av WP-CLI och kommandot wp-plugin install namn-pa-plugin men då behöver du ange exakt rätt namn på pluginet som du vill installera.

Då kan det vara bra att veta att det också går utmärkt att söka bland plugins som finns på wordpress.org och det kan man göra med kommandot:

wp plugin search "simple avatar"

Då får du upp en lista på plugins som matchar ditt sökkriterium och kan då se det tekniska namnet för varje plugin. För att installera ett plugin så kör du:

wp plugin install simple-local-avatars --activate

Genom att lägga till parametern --activate på slutet så aktiveras även pluginet direkt efter installation.

wp plugin search install
Sök efter plugins med wp plugin search

5.3 Aktivera/inaktivera plugin

Om du vill aktivera ett plugin som redan installerats men som är inaktiverat så gör man det enkelt med:

wp plugin activate namn-pa-plugin

Och om du istället vill inaktivera ett plugin så gör man istället så här:

wp plugin deactivate namn-pa-plugin
wp plugin activate deactivate
Aktivera/inaktivera plugins med wp plugin activate/deactivate

6. Byta tema

Du kan också jobba med teman i WordPress via WP-CLI på i stort sett samma sätt som plugins.

För att lista alla plugins som finns installerade på din sida så skriver du:

wp theme list

Och om du vill byta tema så gör man det på följande vis:

wp theme activate namn-pa-tema
wp theme activate
Byt tema på din WordPress-sida med wp theme activate

7. Backup av databas

WP-CLI gör det också supersmidigt att ta backup på ens databas. För att exportera ens databas som en .sql-fil så kör man helt enkelt:

wp db export

Då sparas databasen som en .sql-fil i samma mapp som WordPress ligger i. Tänk på att det kan vara en god idé flytta ut .sql-filer från den mappen då det finns risk att någon kommer åt filen över internet annars.

Du kan även snabbt se vad det finns för tabeller i din databas genom att köra:

wp db tables

7.1 Selektiv export

Du har också möjlighet att enbart exportera enbart vissa tabeller i databasen selektivt, vilket kan vara smidigt om man exempelvis vill kopiera tabellerna wp_posts och wp_postmeta till sin sin stagingmiljö. Då lägger man till en parameter på kommandot så här:

wp db export --tables=wp_posts,wp_postmeta
wp db export
Ta en backup av databasen med wp db export

8. Importera databas

Det är lika enkelt att importera en databasdump med hjälp av WP-CLI som det är att exportera den.

För att importera en .sql-fil så gör man enkelt så här:

wp db import fil-att-importera.sql

8.1 Rensa databas

För att helt rensa din databas innan du utför en import och på så sätt säkerställa att inga andra tabeller finns kvar så kan du först använda dig av:

wp db reset
wp db import
Använd dig av wp db import för att importera/återställa databasen

9. Search-replace (sök och ersätt i databasen)

Ett annat användningsområde för WP-CLI som är helt suveränt är möjligheten att kunna göra ”sök och ersätt” (ibland också kallat find & replace) i ens databas. Det gör det superenkelt att byta domän på sin sida, att flytta en sida från lokal miljö till ”live”, eller byta ut alla instanser av http:// mot https://.

För att göra ”sök och ersätt” i ens databas så använder man kommandot:

wp search-replace gammalt nytt

Hur enkelt som helst!

Det finns många olika scenarion då detta kan vara användbart. Nedan har vi listat några olika användningsområden:

9.1 Byte av domännamn

För att byta domännamn med med hjälp av WP-CLI så gör man så här:

wp search-replace https://dingamladomän.se https://dinnyadomän.se --all-tables

Notera att vi även lade till argumentet --all-tables vilket gör så att sök och ersätt körs i alla tabeller i databasen, ifall det skulle finnas någon tabell som WordPress annars missar.

wp search replace
wp search-replace låter dig köra sök och ersätt i databasen

9.2 Gå över från http:// till https://

Om du istället vill byta ut alla förekomster av http:// till https:// för att du just installerat SSL så gör man då så här:

wp search-replace http://dindomän.se https://dindomän.se --all-tables

9.3 Flytta från lokal miljö

Det går också bra att använda WP-CLI’s search-replace funktion i samband med flytt från lokal miljö till sitt webbhotell. Om du ex. har använt adressen http://localhost på din lokala sida så gör du så här för att byta ut den:

wp search-replace http://localhost https://dindomän.se --all-tables

9.4 Ta bort www

Ytterligare ett scenario då search-replace kan vara användbart är om man vill gå över från att använda www till utan www Då gör man istället så här:

wp search-replace http://www.dindomän.se https://dindomän.se --all-tables

Tänk dock på att byte av domännamn eller att gå från www till utan www har SEO-påverkan och du bör i sånna fall även sätta upp 301 redirects från din gamla adress till din nya.

10. Optimera databas

WP-CLI låter dig även jobba med databasen på andra sätt. Du kan exempelvis få upp en lista över alla tabeller och dess storlek genom att använda dig utav:

wp db size --tables --human-readable
wp db size
wp db size låter dig se storleken på din databas och dess tabeller

Du kan också optimera och snabba upp din databas med hjälp av kommandot:

wp db optimize

Vad är det för hokus pokus, kanske du undrar?

Kommandot kör ett MySQL-verktyg som heter mysqlcheck. Vad det verktyget gör är att det omorganiserar den fysiska lagringen av innehållet i databasen och tillhörande index för att minska diskanvändningen och snabba upp läshastigheten.

Hur smart som helst!

wp db optimize
Optimera och snabba upp din databas med wp db optimize

11. Regenerate thumbnails (återskapa miniatyrer)

När man laddar upp bilder i WordPress så sparas dessa bilder i flera olika storlekar som alla används av WordPress i olika sammanhang. Exakt hur många olika storlekar som finns specificerade i just din WordPress-installation kan du enkelt kolla upp med:

wp media image-size

Du kan också återskapa alla bilder med följande kommando:

wp media regenerate

Att återskapa miniatyrer kan ibland vara nödvändigt efter att du ändrat bildstorlekar i WordPress. Då behöver man nämligen generera bilder i de nyligen angivna storlekarna.

Notera att kommandot ovan genererar ALLA bilder på nytt. Om du istället bara vill generera bilder i de storlekar som saknas så kör du istället:

wp media regenerate --only-missing
wp media regenerate
Se alla specifierade bildstorlekar och återskapa bilder med wp media

12. Verifiera att din WordPress-installation är orörd

Ett annat smart litet trick som finns i WP-CLI är att man bekräfta att alla filer tillhörande WordPress core är orörda genom att verifiera dess checksum. Det gör man enkelt så här:

wp checksum core

Detta kan vara användbart om du är rädd för att någon kan ha hackat din sida eller för att bekräfta att en utvecklare som du jobbar med inte är inne och ändrar på ställen som man inte ska ändra.

wp checksum core
Kontrollera så att ingen har pillat med din WordPress-installation med wp checksum core

13. Komma åt ”oåtkomlig” sida

Sista knepet vi tänkte visa i den här artikeln är hur man kan komma åt sin sida som just blivit otillgänglig i samband med uppdatering av plugins.

Ibland händer det att när man uppdaterar sina plugins så möts man sedan av ett meddelande som säger ”Webbplatsen har tekniska problem”.

webbplatsen har tekniska problem
Ibland möts man av ”webbplatsen har tekniska problem” efter uppdatering

Om vi då istället går in i WP-CLI och försöker se vilka plugins vi har aktiverade så skriver vi:

wp plugin list

Som vi då kan se så fungerar inte heller WP-CLI när vi har tekniska problem på sidan.

wp-cli webbplatsen har tekniska problem
WP-CLI fungerar inte heller (vanligtvis) när vi har tekniska problem

MEN… Det finns ett knep man kan använda sig av i sådana fall. Om vi provar att köra samma kommando igen men lägger till --skip-plugins som en parameter, så här:

wp plugin list --skip-plugins

Vad som då händer är att WP-CLI hoppar över att ladda alla plugins när vi kör vårt kommando, vilket gör så att vi kan kontrollera vår sida igen trots att den fortfarande har tekniska problem.

wp cli skip plugins
WP-CLI fungerar dock om vi använder –skip-plugins

Vi kan också välja att skippa ett visst plugin på det här viset:

wp plugin list --skip-plugins=namn-pa-plugin

På så sätt kan man testa sig fram till vilket plugin det är som orsakat det tekniska problemet, och efter man har hittat vilket plugin det gäller så kan man enkelt inaktivera just det pluginet genom att köra:

wp plugin deactivate namn-pa-plugin --skip-plugins
wp plugin deactivate skip plugins
När du hittat pluginet som orsakar felet är det enkelt att inaktivera

Nu går det att komma åt vår sida igen. WP-CLI räddar dagen!

wp admin fungerar igen
Tack vare WP-CLI så kommer vi nu åt vår hemsida igen

Summering

Det var allt vi hade för den här gången! Vi hoppas att du med detta fått upp ögonen för vilket suveränt verktyg WP-CLI är.

Ifall du tyckte att denna guide var hjälpsam så uppskattar vi om du kunde dela artikeln med andra som du tror skulle ha användning för den.

Ifall du har fler tips på smarta sätt att använda WP-CLI så får du jättegärna lämna en kommentar här nedanför.

Tack för att du läste!

Kommentera

Din e-postadress kommer inte offentliggöras.