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! 🙂
Innehållsförteckning:
- Vad är WP-CLI?
- Installera WP-CLI
- 1. Anslut via SSH
- 2. Lista på kommandon
- 3. Uppdatera WordPress
- 4. Kontrollera användare
- 5. Kontrollera plugins
- 6. Byta tema
- 7. Export/backup av databas
- 8. Importera databas
- 9. Search-replace (sök och ersätt i databasen)
- 10. Optimera databas
- 11. Regenerate thumbnails (återskapa miniatyrer)
- 12. Verifiera att din WordPress-installation är orörd
- 13. Komma åt ”oåtkomlig” sida
- Summering
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?
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.
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”.
Efter det så behöver du också mata in ditt 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”.
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
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
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.
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
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
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"
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.
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
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.
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
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
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
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
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.
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
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!
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
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.
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”.
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.
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.
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
Nu går det att komma åt vår sida igen. WP-CLI räddar dagen!
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!