wp cli lathund
Lathund: WP-CLI (WordPress Command Line Interface)
WP-CLI är WordPress kommandoradsverktyg som låter dig hantera WordPress-installationer via terminalen/SSH istället för via webbgränssnittet. Med WP-CLI kan du installera, uppdatera och administrera WordPress-kärna, tillägg, teman, användare, databaser m.m.
Denna lathund riktar sig till tekniska användare (utvecklare/systemadministratörer) och täcker installation samt de vanligaste kommandona med exempel och förklaringar.
Installation av WP-CLI
Krav
- WP-CLI kräver PHP (vanligen PHP 7.4+ eller nyare) i systemets PATH samt åtkomst till kommandoraden.
- På Linux/macOS betyder detta att PHP är installerat och körbart i terminalen.
- På Windows betyder det att PHP är tillgängligt i PATH.
Linux och macOS (Phar-metoden)
- Ladda ner WP-CLI (phar-fil). Exempel med cURL:
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
- Testa körbarhet (kör med PHP):
php wp-cli.phar --info
- Gör WP-CLI globalt tillgängligt (gör körbar och flytta till en mapp i PATH, t.ex. /usr/local/bin):
chmod +x wp-cli.phar sudo mv wp-cli.phar /usr/local/bin/wp
- Verifiera installationen:
wp --info
Alternativ (Homebrew på macOS)
På macOS kan du installera via Homebrew:
brew install wp-cli
Windows
På Windows kan du använda WP-CLI via PHP i kommandotolken:
- Installera PHP: Säkerställ att PHP är installerat och att
phpfinns i PATH (så att du kan köraphp -v). - Ladda ner
wp-cli.phar: Hämta från officiell URL och spara t.ex. iC:\wp-cli\wp-cli.phar. - Skapa en batchfil: I samma katalog (t.ex.
C:\wp-cli\) skapa filenwp.batmed följande innehåll:
@ECHO OFF php "C:/wp-cli/wp-cli.phar" %*
- Uppdatera PATH: Lägg till
C:\wp-cli\i systemets PATH (t.ex. medsetx). Starta om terminalen efteråt. - Testa:
wp --info
Uppdatera WP-CLI
Om du installerat WP-CLI via Phar-metoden kan du uppdatera det med:
wp cli update
Kör med sudo om din wp ligger i en systemmapp som kräver root. Du kan även lägga till --nightly för att installera senaste utvecklingsversion.
Använde du Homebrew, Composer eller annan pakethanterare, uppdatera istället via respektive system.
Grundläggande användning och kommandostruktur
Körning
För att använda WP-CLI, öppna en terminal/kommandotolk och navigera till roten av din WordPress-installation (där wp-config.php finns). Därefter skriver du kommandon med prefixet wp.
Generellt format:
wp <kommando> <underkommando> [--option1=värde ...]
Exempel:
wp plugin install akismet --activate
Globala flaggor (vanliga)
--path=<sökväg>– Kör kommandot mot en WordPress-installation i angiven sökväg.--url=<URL>– Specificera URL (t.ex. multisite eller om du kör utan att stå i katalogen).--user=<användare>– Kör kommandot som en viss WordPress-användare (inlogg, ID eller e-post).--allow-root– Inaktiverar varningen som hindrar körning som root (använd försiktigt).--quiet– Tyst läge, döljer icke-felmeddelanden (bra för cronjobb).--debug– Visar mer felsökningsinformation.--prompt– Frågar interaktivt efter värden som inte angivits.
Hjälp
wp help– översikt.wp help <kommando>ellerwp <kommando> --help– detaljer om ett specifikt kommando.
Exempel på enkla kommandon
wp core version– Visar din WordPress-version.wp core check-update– Kontrollerar om ny WordPress-version finns.wp plugin status– Visar vilka plugins som är aktiva/inaktiva och om uppdateringar finns.wp theme status– Visar vilka teman som är aktiva och om uppdateringar finns.wp help <kommando>– Visar hjälptext för valt kommando.
Uppdateringar av WordPress, teman och tillägg
Att hålla WordPress-kärnan, samt installerade teman och tillägg, uppdaterade är viktigt för säkerhet och funktion.
- Uppdatera WordPress (kärnan):
wp core update
Efter en större versionsuppdatering bör du även köra:
wp core update-db
Kontrollera om det finns en uppdatering först:
wp core check-update
- Uppdatera alla tillägg:
wp plugin update --all
- Uppdatera specifikt plugin:
wp plugin update <plugin-slug>
- Uppdatera alla teman:
wp theme update --all
- Uppdatera specifikt tema:
wp theme update <tema-slug>
- Språkfiler:
wp language core update
Notera: WP-CLI-kommandon för uppdatering är icke-interaktiva. Uppdateringar körs direkt utan ytterligare bekräftelse. Ta backup innan du kör större uppdateringar i skarpa miljöer.
Temahantering
- Installera ett tema:
wp theme install <tema-slug>
Installera och aktivera direkt:
wp theme install twentytwentythree --activate
- Aktivera ett tema:
wp theme activate <tema-slug>
- Uppdatera teman:
wp theme update <tema-slug>
Uppdatera alla:
wp theme update --all
- Ta bort ett tema:
wp theme delete <tema-slug>
- Lista teman:
wp theme list
Filtrera:
- Inaktiva:
--status=inactive - Med uppdateringar:
--update=available
Användarhantering (skapa, ta bort, ändra roller, lista)
Skapa ny användare
wp user create <användarnamn> <email> --role=<roll>
Exempel:
wp user create johan [email protected] --role=author
Lista användare
wp user list
Filtrera på roll:
wp user list --role=subscriber
Exportera fält:
wp user list --fields=ID,user_login,role --format=csv
Uppdatera användare
Byta roll:
wp user update <användar-id> --role=<ny_roll>
Byta lösenord:
wp user update <user> --user_pass=<nyttlösenord>
Exempel:
wp user update 2 --display_name="John Doe" --user_pass="hemligt"
Ta bort en användare
wp user delete <user> [--reassign=<annat_user_id>] [--yes]
Exempel (ta bort användare 3, flytta allt innehåll till user 1):
wp user delete 3 --reassign=1 --yes
Roller (wp role)
- Lista roller:
wp role list - Skapa roll:
wp role create - Ta bort roll:
wp role delete - Återställ standardroller:
wp role reset
Databashantering (export/import, sök-ersätt, optimering)
Alla wp db-kommandon använder uppgifterna i wp-config.php.
Exportera databasen (backup)
wp db export [filnamn.sql]
Exempel:
wp db export backup.sql
Importera databasen
wp db import <filnamn.sql>
Exempel:
wp db import backup.sql
Varning: Import skriver över befintligt databasinnehåll.
Sök och ersätt
wp search-replace <söksträng> <ersättningssträng> [--dry-run]
Exempel (kör först med dry-run):
wp search-replace 'http://gammal-domän.se' 'https://ny-domän.se' --dry-run
När du kontrollerat utfallet, kör utan --dry-run.
Optimera databasen
wp db optimize
Reparera databasen
wp db repair
Övriga db-kommandon
- Köra SQL:
wp db query "<SQL>" - Storlek:
wp db size - Tabeller:
wp db tables - Kontroll:
wp db check - Prefix:
wp db prefix
Säkerhetskopiering och återställning
Det finns inget enskilt WP-CLI-kommando som tar en fullständig backup av både filer och databas, men du kan enkelt automatisera backup.
Databasbackup
wp db export ~/wp-backup-`date +%F`.sql
Filbackup (wp-content)
WP-CLI zippar inte filer, använd systemverktyg (exempel Linux/macOS):
tar -czf wp-content-backup.tar.gz wp-content/
Kom ihåg att även spara wp-config.php och eventuella specialfiler.
Exportera innehåll (XML/WXR)
wp export --dir=./ --filename_format=backup-%date%.xml
Återställning (princip)
- Databas:
wp db import <backup.sql> - Filer: återställ
wp-content(och ev. config) - XML: importera WXR vid behov:
wp import <fil>.xml --authors=create
Vid flytt till ny miljö kan du behöva köra wp search-replace om domän/sökvägar ändrats.
Inställningar och konfiguration (wp config)
Skapa en ny wp-config.php
wp config create --dbname=<db_namn> --dbuser=<db_anv> --dbpass=<db_lösenord> [--dbhost=<host>] [--locale=<språk>]
Exempel:
wp config create --dbname=wpdb --dbuser=root --dbpass=hemmelig --locale=sv_SE
Lista konfig-inställningar
wp config list
Sätta en konfiguration
wp config set <NAMN> <värde> [--raw]
Exempel (aktivera debug):
wp config set WP_DEBUG true --raw
Fler exempel:
wp config set WP_POST_REVISIONS 5 --raw wp config set BLOGPUBLIC false --raw wp config set WP_HOME 'https://example.com' wp config set WP_SITEURL 'https://example.com'
Ta bort en konfiguration
wp config delete <NAMN>
Uppdatera salts
wp config shuffle-salts
Redigera wp-config i editor
wp config edit
Tips: wp option-kommandon hanterar inställningar i databasen (t.ex. siteurl), medan wp config hanterar konstanter i wp-config.php.
Skapande och uppdatering av inlägg och sidor
Skapa ett nytt inlägg
wp post create --post_type=post --post_title="Min rubrik" --post_content="Innehåll..." --post_status=publish
Exempel (utkast):
wp post create --post_title="Hej världen" --post_content="Detta är mitt inlägg." --post_status=draft
Skapa en sida
wp post create --post_type=page --post_title="Om Oss" --post_content="Här är info om oss..." --post_status=publish
Lista inlägg/sidor
wp post list
Exempel (lista sidor med utvalda fält):
wp post list --post_type=page --fields=ID,post_title,post_status
Uppdatera ett inlägg/sida
wp post update <post-id> [--post_title="Ny titel"] [--post_status=<status>] [--post_content="..."]
Exempel:
wp post update 123 --post_title="Uppdaterad rubrik" --post_status=publish
Radera ett inlägg/sida
- Flytta till papperskorg (standard):
wp post delete 157
- Radera permanent:
wp post delete 157 --force
Andra innehållsverktyg (översikt)
wp menu– navigationsmenyerwp comment– kommentarerwp term– kategorier/taggar/taxonomierwp media– media (t.ex. import/regenerera)wp post meta– custom fields (post meta)
Verktyg för felsökning och underhåll
Kontroll av WordPress-integritet
- Verifiera kärnfiler:
wp core verify-checksums
Debug-läge och utvärdering
- Interaktiv WP-CLI shell:
wp shell
- Köra PHP-kod i WordPress-kontext:
wp eval '<kod>'
Cron-jobb (WP-Cron)
- Lista cron-händelser:
wp cron event list
- Kör förfallna händelser:
wp cron event run --due-now
- Kör specifik hook:
wp cron event run <hook>
- Schemalägg:
wp cron event schedule <hook> [<tid>] [<intervall>]
- Ta bort:
wp cron event delete <hook>
- Lista intervall:
wp cron schedule list
Tips i produktion: Inaktivera WP-Cron och kör istället ett system-cronjobb som triggar:
wp cron event run --due-now
Cache och transients
- Töm objektcache:
wp cache flush
- Ta bort alla transients:
wp transient delete --all
- Ta bort expirerade transients:
wp transient delete-expired
- Flusha rewrite-regler:
wp rewrite flush
wp doctor (paket)
Det finns ett paket som heter wp-cli/doctor-command som kan köra hälsokontroller:
wp package install wp-cli/doctor-command wp doctor check
Tips för automation (cronjobs, skript)
Köra WP-CLI i cron
Exempel (dagligen kl 03:00, uppdatera alla plugins på en viss site):
0 3 * * * /usr/bin/php /usr/local/bin/wp plugin update --all --allow-root --quiet --path=/var/www/mysite
Alternativt:
0 3 * * * cd /var/www/mysite && wp plugin update --all --quiet
Skript med flera kommandon
Exempel (enkel backup-idé):
#!/bin/bash wp db export /backup/db-$(date +%F).sql --quiet tar -czf /backup/wpfiles-$(date +%F).tar.gz wp-content/ --exclude='cache'
Konfigfil för standardflaggor
Du kan sätta standardinställningar i ~/.wp-cli/config.yml (globalt) eller wp-cli.local.yml (per projekt), t.ex. default path.
Icke-interaktiv körning
För scripts/cron:
- använd
--yesdär det behövs - använd
--quietför mindre output - logga output till fil vid behov (inkl. fel med
2>&1)
Avslut
Kort sagt är WP-CLI skriptvänligt. Genom att kombinera WP-CLI-kommandon med vanliga skal-/PowerShell-skript eller cron kan du automatisera rutinuppgifter som uppdateringar, säkerhetskopiering och städning. Det minskar behovet av manuellt arbete och reducerar risken för misstag, samtidigt som du får mer konsekventa resultat över tid.
Testa alltid nya skript i en staging-/testmiljö innan du kör dem i produktion.