• Lathund: WP-CLI (WordPress Command Line Interface)

    Innehållsförteckning

    WP-CLI är WordPress kommandoradsverktyg som låter dig hantera WordPress-installationer via terminalen/SSH istället för via webbgränssnittet[1]. Med WP-CLI kan du installera, uppdatera och administrera WordPress kärna, tillägg, teman, användare, databaser mm. Denna lathund riktar sig till tekniska användare (utvecklare/systemadministratörer) och täcker installation och 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, och på Windows att PHP är tillgängligt i PATH.

    Linux och macOS (Phar-metoden)

    1. Ladda ner WP-CLI phar-fil: Använd cURL eller wget för att hämta WP-CLI som en Phar-fil (PHP-arkiv). Exempel med cURL:
    • curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
    • Detta laddar ner filen wp-cli.phar[2].
    1. Testa körbarhet: Kör filen med PHP för att se så allt fungerar:
    • php wp-cli.phar –info
    • Du bör se information om din PHP- och WP-CLI-version om det lyckas[3].
    1. Gör WP-CLI globalt tillgängligt: Gör filen körbar och flytta den till en mapp i din PATH, t.ex. /usr/local/bin:
    • chmod +x wp-cli.phar
      sudo mv wp-cli.phar /usr/local/bin/wp
    • Efter detta kan du använda kommandot wp globalt i terminalen[4].
    1. Verifiera installationen: Kör wp –info för att försäkra att WP-CLI fungerar globalt (det bör visa WP-CLI-version, PHP-version etc. likt tidigare)[5].

    Alternativ (Homebrew macOS): På macOS kan du installera via Homebrew:
    brew install wp-cli

    Uppdatera WP-CLI

    Om du installerat WP-CLI via Phar-metoden kan du uppdatera det enkelt med:

    wp cli update

    Kör med sudo om din wp ligger i en systemmapp som kräver root. WP-CLI kommer då kontrollera senaste version och uppdatera sig själv[10]. Du kan även lägga till flaggan –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 är:

    wp <kommando> <underkommando> [–option1=värde …]

    Exempel: wp plugin install akismet –activate installerar ett plugin och aktiverar det[12].

    FlaggaBeskrivning
    --path=<sökväg>Kör kommandot mot en WordPress-installation i angiven sökväg (om du inte redan står i rätt katalog).
    --url=<URL>Specificerar URL, t.ex. vid multisite eller när kommandon körs utan att stå i installationskatalogen (exempel: --url=example.com).
    --user=<användare>Kör kommandot som en viss WordPress-användare (inloggningsnamn, ID eller e-post). Användbart för kommandon som kräver särskilda rättigheter.
    --allow-rootInaktiverar varningen som hindrar körning som root. Används vid behov i t.ex. containrar eller skript (använd med försiktighet).
    --quietTyst läge – döljer icke-felmeddelanden. Lämpligt för cronjobb och automatiserade skript.
    --debugVisar utökad felsökningsinformation, inklusive PHP-notiser och körspårning.
    --promptFrågar interaktivt efter värden som inte angivits, t.ex. lösenord, för att undvika klartext i kommandoraden.

    Hjälp:
    Du kan alltid få hjälp för tillgängliga kommandon. Kör wp help för översikt eller wp help <kommando> / wp <kommando> –help för detaljerad hjälp om ett specifikt kommando (inklusive tillgängliga underkommandon och argument).

    Exempel på enkla kommandon: (Förutsatt att du står i WordPress-mappen)

    KommandoBeskrivning
    wp core versionVisar vilken version av WordPress som är installerad.
    wp core check-updateKontrollerar om det finns en ny WordPress-version tillgänglig för uppdatering.
    wp plugin statusVisar alla installerade plugins samt om de är aktiva, inaktiva och om uppdateringar finns.
    wp theme statusVisar alla installerade teman, vilket tema som är aktivt och om uppdateringar finns.
    wp help <kommando>Visar hjälptext, tillgängliga underkommandon och flaggor 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. WP-CLI gör uppdateringar mycket smidiga:

    • Uppdatera WordPress (kärnan): Kör wp core update för att hämta och installera senaste WordPress-versionen. Efter en större versionsuppdatering bör du även köra databasuppdateringen med wp core update-db. (motsvarar steget som annars körs via admin när databasen behöver uppgraderas). Du kan kontrollera om det finns en uppdatering först med wp core check-update om du vill. Specificera –version=<x.y.z> om du vill uppdatera/downgrada till en viss version, eller –minor för att bara ta minor-versioner.
    • Uppdatera alla tillägg: Använd wp plugin update –all för att uppdatera samtliga installerade plugins till senaste versionen. WP-CLI laddar då ner och uppdaterar varje plugin i tur och ordning.
    • Uppdatera specifikt plugin: Kör wp plugin update <plugin-slug> för att uppdatera ett enskilt plugin. Exempel: wp plugin update akismet uppdaterar Akismet-pluginet (ersätt akismet med slug för pluginet du vill uppdatera).
    • Uppdatera alla teman: Kör wp theme update –all för att uppdatera samtliga installerade teman på en gång.
    • Uppdatera specifikt tema: Använd wp theme update <temanamn> för att uppdatera ett visst tema (t.ex. wp theme update twentytwenty för Twenty Twenty-temat).
    • Språkfiler: För att uppdatera WordPress språkpaket kan du använda wp language core update (samt liknande för plugins/teman). Detta körs normalt automatiskt vid core-uppdatering, men kan göras manuellt vid behov.

    Notera: WP-CLI-kommandon för uppdatering är icke-interaktiva. Det betyder att uppdateringar körs direkt utan ytterligare bekräftelse. Se till att ta backup innan du kör större uppdateringar i skarpa miljöer. Mer om backup nedan.

    Plugin-hantering (installera, aktivera, uppdatera, ta bort, lista)

    WP-CLI kan hantera installation, aktivering, uppdatering m.m. av tillägg (plugins) mycket effektivt:

    • Installera ett plugin: wp plugin install <plugin-slug> – laddar ner och installerar pluginet med angivet slug (namn) från WordPress plugin-katalogen. Du kan även ge en zip-fil eller URL till ett plugin. Använd flaggan –activate för att automatiskt aktivera pluginet efter installation.

      Exempel:
      wp plugin install woocommerce –activate
    • installerar och aktiverar WooCommerce i ett steg.
    • Aktivera ett plugin: wp plugin activate <plugin-slug> – aktiverar ett redan installerat plugin[29]. Exempel: wp plugin activate akismet aktiverar Akismet-pluginet. Om pluginet inte är installerat får du ett fel.
    • Inaktivera (deaktivera) ett plugin: wp plugin deactivate <plugin-slug> – stänger av ett aktivt plugin. Pluginet finns kvar installerat men körs inte. Exempel: wp plugin deactivate akismet stänger av Akismet. Du kan inaktivera alla plugins med flaggan –all (t.ex. vid felsökning).
    • Uppdatera plugin: wp plugin update <plugin-slug> – uppdaterar angivet plugin till senaste version. Lägg till –version=<x.y.z> om du behöver en specifik version, eller –all för att uppdatera alla plugins.
    • Ta bort (radera) ett plugin: wp plugin delete <plugin-slug> – avinstallerar pluginet (tar bort filerna)[34]. Observera att detta inte återställer några ändringar pluginet gjort i databasen. Använd –inactive för att ta bort alla inaktiva plugins i ett svep, eller –all för alla plugins (använd försiktigt!). Exempel: wp plugin delete hello tar bort det klassiska ”Hello Dolly”-pluginet.
    • Lista plugins: wp plugin list – listar alla installerade plugins med kolumner för namn, status (aktiv/inaktiv), tillgänglig uppdatering, version etc. Du kan filtrera listan med flaggor, t.ex. –status=active för enbart aktiva plugins, –update=available för de med uppdateringar[36]. Detta kommando är användbart för överblick, t.ex. vilka plugins som är aktiva eller behöver uppdateras.
    KommandoBeskrivning
    wp plugin install <slug> [--activate]Installerar ett plugin (från WP-katalogen som standard). Lägg till --activate för att aktivera direkt efter installation.
    wp plugin activate <slug>Aktiverar ett installerat plugin. Kräver att pluginet redan är installerat.
    wp plugin deactivate <slug>Inaktiverar (stänger av) ett plugin, men lämnar det installerat. Använd --all för att inaktivera alla plugins.
    wp plugin update <slug> [--version=X.Y]Uppdaterar pluginet till senaste version (eller angiven version). Använd --all för att uppdatera alla plugins.
    wp plugin delete <slug>Tar bort (avinstallerar) pluginet helt. Använd --all för alla plugins (försiktighet!) eller --inactive för alla inaktiva.
    wp plugin listListar installerade plugins och deras status. Bra för att få överblick.

    Temahantering

    WP-CLI hanterar teman på ett liknande sätt som plugins. Kommandomönstret är detsamma med wp theme i stället för wp plugin:

    • Installera ett tema: wp theme install <tema-slug> – laddar ner och installerar temat från WordPress temakatalog. Exempel: wp theme install twentytwentythree installerar Twenty Twenty-Three temat. Använd –activate flaggan för att aktivera temat direkt efter installation om du vill byta tema omgående.
    • Aktivera ett tema: wp theme activate <tema-slug> – byter aktivt tema till det angivna. T.ex. wp theme activate twentytwentythree aktiverar Twenty Twenty-Three. Observera att det nya temat bör vara installerat innan (annars felmeddelande). Om det nya temat inte stödjer vissa meny- eller widgetpositioner kan du behöva justera dessa manuellt efter aktivering (samma som via admin).
    • Uppdatera teman: wp theme update <tema-slug> uppdaterar ett visst tema till senaste version. Använd –all för att uppdatera alla teman samtidigt[25]. Exempel: wp theme update –all uppdaterar samtliga installerade teman i din WordPress-installation.
    • Ta bort ett tema: wp theme delete <tema-slug> tar bort ett installerat tema (gäller även om det är oaktiverat). WordPress kräver att minst ett tema finns kvar (för att hantera t.ex. fallback om aktuellt tema tas bort), så ta inte bort alla teman. Exempel: wp theme delete twentyseventeen tar bort Twenty Seventeen-temat. Du kan t.ex. radera äldre standardteman du inte använder.
    • Lista teman: wp theme list listar alla installerade teman med kolumner för namn, status (aktivt eller ej), uppdateringsstatus och version. T.ex. ser du vilket tema som är aktivt (markerat som ”active”) och om några teman har uppdateringar tillgängliga (kolumnen ”update”). Detta är användbart för att snabbt se t.ex. om du har något gammalt tema installerat som kan tas bort eller uppdateras.

    Obs: Precis som med plugins kan du använda liknande flaggor för att filtrera listan, t.ex. wp theme list –status=inactive för alla inaktiva teman, eller wp theme list –update=available för teman med uppdateringar.

    Användarhantering (skapa, ta bort, ändra roller, lista)

    WP-CLI kan skapa och hantera WordPress-användare, inklusive roller och behörigheter:

    Skapa ny användare:
    wp user create <användarnamn> <email> –role=<roll>

    • Detta skapar en ny användare med angivet användarnamn, e-post och tilldelar rollen du specificerar[39][40]. Rollen kan vara t.ex. administrator, editor, author, contributor eller subscriber. Lösenord genereras automatiskt om du inte anger flaggan –user_pass=<lösenord>.

      Exempel:
    • wp user create johan [email protected] –role=author
    • skapar en användare johan med författar-roll[39]. (OBS: Byt ut användarnamn och e-post mot de värden du vill använda i praktiken[40].)
    • Lista användare: wp user list – visar en lista på alla användare på webbplatsen med kolumner för ID, inloggningsnamn, display-namn, e-post, registreringsdatum och roller[41]. Använd flaggor som –role=<roll> för att filtrera på en viss roll (t.ex. visa alla subscriber)[42]. Du kan också ändra format, t.ex. –fields=ID,user_login,role –format=csv om du vill exportera vissa fält[43]. Standardvisning är en tabell i terminalen.
    • Ändra (uppdatera) en användare: wp user update <user> [–fält=värde] – uppdaterar angivna fält för en befintlig användare. Du kan referera till användaren med användar-ID, inlogg eller e-post. Vanliga användningsområden:
    • Byta roll: wp user update <användar-id> –role=<ny_roll> ändrar en användares roll. T.ex. wp user update 5 –role=editor sätter användare med ID 5 till redaktör. (Alternativt kan du använda wp user set-role <user> <roll> om du vill sätta endast den rollen och ta bort ev. andra roller.)
    • Byta lösenord: wp user update <user> –user_pass=<nyttlösenord>.
    • Ändra visningsnamn eller andra fält: t.ex. wp user update <user> –display_name=”Nytt Namn” ändrar visningsnamnet.

    Exmepel :

    KommandoBeskrivning
    wp user update 2 --display_name="John Doe" --user_pass="hemligt"Uppdaterar användare med ID 2, sätter visningsnamn till ”John Doe” och ändrar lösenord. Flera fält kan ändras i samma kommando.
    wp user delete <user> [--reassign=<annat_user>] [--yes]Tar bort en användare (ange inlogg, ID eller e-post). Om användaren har innehåll måste detta raderas eller omassigneras till annan användare med --reassign. Utan --yes krävs interaktiv bekräftelse.
    wp user delete 3 --reassign=1 --yesTar bort användare med ID 3 och tilldelar alla dess inlägg och sidor till användare med ID 1 utan att fråga om bekräftelse.
    wp role listVisar alla tillgängliga användarroller i WordPress.
    wp role create <roll> <visningsnamn>Skapar en ny användarroll med angivet namn.
    wp role delete <roll>Tar bort en befintlig användarroll.
    wp role resetÅterställer WordPress standardroller och tillhörande behörigheter (capabilities).
    wp user add-role <user> <roll>Lägger till en extra roll för en användare (utöver befintlig roll).
    wp user remove-role <user> <roll>Tar bort en roll från en användare.

    Hantera roller separat:
    WP-CLI har även underkommandon för att direkt hantera användarroller: wp role. Du kan lista alla roller med wp role list, lägga till en ny roll med wp role create, ta bort med wp role delete, eller återställa defaultroller med wp role reset (återställer WordPress standarduppsättning roller och capabilities). För enskilda användare finns också wp user add-role <user> <roll> och wp user remove-role <user> <roll> om du vill ge eller ta bort ytterligare roller (WordPress stödjer flera roller per användare, men i standardinstallation används normalt en primär roll per användare). Dessa är mer ovanliga och används mest i multisite eller specialfall.

    Tips: Använd wp user generate (i WP-CLI paket) för att generera många testanvändare ifall du behöver testdata. Även wp user spam/delete/restore finns för multisite-hantering. Kontrollera wp help user för fler kommandon om användarhantering.

    Databashantering (export/import, sök-ersätt, optimering)

    WP-CLI underlättar många databasrelaterade uppgifter. Alla wp db-kommandon använder uppgifterna i wp-config.php för att ansluta till databasen. Nedan de vanligaste:

    • Exportera databasen (backup): wp db export [filnamn.sql] – tar en dump/backup av hela WordPress-databasen till en SQL-fil. Om du inte anger filnamn genereras ett standardnamn innehållande databasen och datum. Exempel:
    • wp db export backup.sql
    • skapar filen backup.sql i nuvarande katalog med hela DB-innehållet. WP-CLI visar något i stil med “Success: Exported to ’backup.sql’.” vid lyckad export. Du kan ange en sökväg för att spara filen på annan plats (t.ex. en backup-mapp). Det går även att exkludera tabeller med flaggan –exclude_tables=wp_options,wp_users,… om man t.ex. inte vill exportera cache eller statistik-tabeller.
    • Importera databasen: wp db import <filnamn.sql> – läser in en SQL-dump i databasen. Vanligen används detta för att återställa en backup eller migrera data.

      Varning: kommandot skriver över befintligt databasinnehåll med datan i dump-filen. Se därför till att du importerar i rätt databas. Exempel:
    • wp db import backup.sql
    • läser in filen backup.sql till databasen[50] (måste vara samma databasstruktur, version etc som din WP-installation för att fungera). Lyckas det ser du “Success: Imported from ’backup.sql’.” i utmatningen.
    • Sök och ersätt: wp search-replace <söksträng> <ersättningssträng> [–dry-run] – söker igenom hela databasen efter en text och ersätter med en annan. Detta är ovärderligt vid t.ex. domänändringar eller byta HTTP -> HTTPS på alla länkar. WP-CLI hanterar serialiserade PHP-data, vilket gör det säkrare än en vanlig SQL-UPDATE vid sådana ändringar[51]. Exempel:


    • wp search-replace ’http://gammal-domän.se’ ’https://ny-domän.se’
    • söker igenom databasen efter alla förekomster av http://gammal-domän.se och ersätter med https://ny-domän.se. Lägg alltid till –dry-run första gången för att se en rapport av hur många träffar och ändringar som skulle göras, utan att faktiskt ändra något. När du kontrollerat utfallet, kör kommandot igen utan –dry-run för att genomföra förändringarna. WP-CLI summerar antalet ersättningar per tabell när det är klart. Tänk på att byta ut strängarna i kommandot till dina faktiska värden (t.ex. gammal/ny domän). Efter en sådan search-replace kan det vara bra att rensa cache (t.ex. object cache) ifall du använder det, för att ändringarna ska slå igenom.
    • Optimera databasen: wp db optimize – optimerar databastabellerna (motsvarar att köra SQL-kommandot OPTIMIZE TABLE på alla WP-tabeller). Detta kan defragmentera tabeller och frigöra utrymme efter många rader har raderats, vilket i vissa fall ger bättre prestanda. Kör kommandot så här:


    • wp db optimize
    • WP-CLI svarar med något som “Success: Database optimized.” när det är klart. Det är ofarligt att köra och du kan göra det periodiskt (t.ex. i månaden) som underhåll.
    • Reparera databasen: wp db repair – reparerar korrupta tabeller om möjligt (motsvarar att köra REPAIR TABLE). WordPress har en inbyggd rep-funktion via wp-config (define(’WP_ALLOW_REPAIR’,true)), men WP-CLI låter dig köra reparering direkt. Exempel: wp db repair försöker laga fel i databasen och ger “Success: Database repaired.” om lyckat. Använd detta om du misstänker fel i databasen (t.ex. efter en krasch).
    • Databasfrågor och info: Ytterligare nyttiga db-kommandon:
    • wp db query ”<SQL>” – kör en valfri SQL-fråga mot databasen (t.ex. en SELECT eller UPDATE). Använd med försiktighet.
    • wp db size – visar databasens storlek per tabell och totalt, bra för att se om någon tabell är ovanligt stor.
    • wp db tables – listar alla WP-databastabeller (du kan filtrera per prefix, nätverk mm).
    • wp db check – kör en kontroll av databasen (motsvarar mysqlcheck utan reparera).
    • wp db prefix – visar vilket tabellprefix installationen använder (t.ex. wp_).

    Säkerhetstips: Innan du kör destruktiva kommandon (som search-replace utan dry-run, eller import som skriver över DB), ta alltid en backup med wp db export. WP-CLI’s databashantering är kraftfullt, så dubbelfodra alltid att kommandot är korrekt för att undvika oönskade ändringar.

    Säkerhetskopiering och återställning

    Det finns inget enskilt WP-CLI-kommando som tar en fullständig backup av hela WordPress-webbplatsen (filer och databasen), men du kan med WP-CLI enkelt skript-automatisera backup. Grundkomponenterna i en WordPress-backup är:

    • Databasbackup: Använd wp db export som nämnt ovan för att skapa en dump av databasen. Det viktigaste innehållet (inlägg, sidor, inställningar etc) finns i databasen, så en SQL-backup är kritisk. Exempel:
    • wp db export ~/wp-backup-`date +%F`.sql
    • (Kommandot ovan sparar backupfilen med dagens datum i hemkatalogen; i Windows kan du använda %DATE% eller köra via Bash in WSL/MinGW för liknande funktionalitet.)
    • Filbackup (wp-content): Databasen innehåller det dynamiska innehållet, men du bör också säkerhetskopiera filsystemet, främst wp-content-mappen som innehåller uppladdade media, plugins och teman. WP-CLI har inget inbyggt kommando för att zipa eller kopiera filer, så använd vanliga systemverktyg som tar/zip eller skript för detta. T.ex.:
    • tar -czf wp-content-backup.tar.gz wp-content/
    • (detta skapar en gzippad tar-arkiv av hela wp-content katalogen). Se till att även spara wp-config.php och eventuella specialfiler om du manuellt säkerhetskopierar filer.
    • Exportera innehåll (XML): Alternativt eller kompletterande kan du använda wp export för att exportera allt innehåll (inlägg, sidor, kommentarer, custom fields, menyer etc) till en WordPress XML/WXR-fil. Detta motsvarar verktyget

      Export i WordPress admin. Exempel:
    • wp export –dir=./ –filename_format=backup-%date%.xml
    • genererar en eller flera XML-filer (om mycket innehåll) i angiven katalog. WP-CLI ger en “Success: All done with export.” när klar[63]. Dessa XML-filer kan senare importeras på en annan WordPress-sajt.
    • Återställning via import: För att återställa en hel sajt från backup behöver du importera databasen och återställa filerna:
    • Databas: wp db import <backup.sql> för att läsa in SQL-backupen som tidigare nämnts.
    • Filer: packa upp din filbackup (t.ex. kopiera tillbaka wp-content mappen och placera filerna på samma platser).
    • XML-innehåll: Om du använt wp export, importera med wp import <fil>.xml –authors=create. wp import använder WordPress importer-verktyget; flaggan –authors=create låter WP-CLI skapa nya användarkonton om XML-filen innehåller författare som inte finns. WP-CLI visar progress för varje post som importeras och slutar med “Success: Finished importing…” när klart. Notera att för att wp import ska fungera kan det behöva att WordPress Importer-pluginet är installerat – WP-CLI hanterar normalt detta automatiskt genom att tillfälligt aktivera importeraren.

    Tips: För en rutinmässig backup kan du skapa ett skript eller cronjob (se avsnitt om automation) som kör wp db export och kopierar wp-content. Det finns även plugins som WP-CLI kan interagera med (som duplicator, updraftplus CLI-kommandon etc), men standardmetoderna ovan är plugin-oberoende.

    Vid återställning i en ny miljö, kom ihåg att uppdatera konfigurationen (t.ex. databasuppgifter i wp-config.php) och eventuellt köra search-replace om domän eller sökvägar ändrats (t.ex. ändra utvecklings-URL till produktion-URL, se avsnitt Databashantering ovan).

    Inställningar och konfiguration (wp config)

    WP-CLI erbjuder kommandon för att läsa och ändra WordPress konfigurationsfil wp-config.php utan att öppna en texteditor. Detta är användbart för att t.ex. automatisera installation eller ändra inställningar:

    • Skapa en ny wp-config.php: wp config create –dbname=<db_namn> –dbuser=<db_anv> –dbpass=<db_lösenord> [–dbhost=<host>] [–locale=<språk>] – genererar en ny wp-config.php med de givna databaskopplingarna. Används vid nyinstallation av WordPress (ofta tillsammans med wp core download och wp core install). Exempel:
    • wp config create –dbname=wpdb –dbuser=root –dbpass=hemmelig –locale=sv_SE
    • Detta skapar en wp-config.php i nuvarande katalog med databasnamn ”wpdb”, db-användare ”root”, lösen ”hemmelig” och inställningar för svenska (sv_SE). WP-CLI sätter förvalda autentiseringsnycklar/salts åt dig, så du får en säker config genererad. Om filen redan finns kan kommandot vägra skriva över utan –force. Du kan även ange extra parametrar som table prefix (–dbprefix=wp_) eller använda –skip-salts om du inte vill generera nya salts (inte rekommenderat).
    • Lista konfig-inställningar: wp config list – listar alla konstanter och variabler definierade i wp-config.php. Du ser namn och värde (om det är en konstant markeras det). Bra för att snabbt kolla t.ex. vilket DB_NAME eller WP_DEBUG som är satt utan att öppna filen.
    • Sätta en konfiguration: wp config set <NAMN> <värde> [–raw] – sätter en konstant eller PHP-variabel i wp-config.php. T.ex. för att aktivera debug mode:
      wp config set WP_DEBUG true –raw
    • Detta lägger till define(’WP_DEBUG’, true); i wp-config.php eller ändrar befintlig definition. –raw flaggan betyder att värdet ska skrivas bokstavligen (utan citattecken) – använd detta för booleans, siffror eller NULL. Utan –raw tolkas värdet som en sträng och omges av ’…’. Du kan även sätta värden som inte är definierade än. Andra exempel:
    • wp config set WP_POST_REVISIONS 5 –raw # Max 5 revisioner
      wp config set BLOGPUBLIC false –raw # Hindra sökmotorindexering
      wp config set WP_HOME ’https://example.com’
      wp config set WP_SITEURL ’https://example.com’
    • De sista två exemplen skulle uppdatera sajtens hem- och site-URL (motsvarande om du har flyttat WordPress, men oftast är search-replace bättre för domänändring).
    • Ta bort en konfiguration: wp config delete <NAMN> – tar bort en definition av en konstant eller variabel i wp-config.php[68]. Användbart om du vill rensa bort en inställning (t.ex. återgå till default). Exempel: wp config delete WP_CACHE tar bort WP_CACHE konstanten om den fanns (som annars aktiverar cache).
    • Uppdatera unika nycklar och salts: wp config shuffle-salts – genererar nya unika autentiseringsnycklar och salt-värden och ersätter de befintliga i wp-config.php[69]. Att byta ut salts loggar ut alla användare (vilket kan vara bra efter ett intrång). Kör helt enkelt:
    • wp config shuffle-salts
    • WP-CLI uppdaterar alla AUTH_KEY, SECURE_AUTH_KEY, LOGGED_IN_KEY, etc med nya slumpvärden. Detta kommando bör köras i webbplatsens rot, och kräver att en wp-config.php med de gamla nycklarna finns.
    • Redigera wp-config via editor: wp config edit – öppnar wp-config.php i systemets editor ($EDITOR variabel)[67]. Detta är en bekvämlighetsfunktion om du behöver göra manuella ändringar; det är likvärdigt med att öppna filen i vim/nano. Spara och stäng för att verkställa ändringarna.

    Tips: wp option-kommandon låter dig hantera inställningar som lagras i databasen (wp_options-tabellen) för en sajt, t.ex. wp option get siteurl eller wp option update blogname ”Ny Titel”. Förväxla inte dessa med konfig-konstanter ovan. Konstanter i wp-config styr global funktionalitet (cache, debug, minne, salts, etc) innan WordPress initieras, medan wp option påverkar inställningar som annars setts i wp-admin under Inställningar.

    Skapande och uppdatering av inlägg och sidor

    WP-CLI kan skapa, lista, redigera och ta bort inlägg av olika typer (blogginlägg, sidor, custom post types). Det huvudsakliga kommandot är wp post:

    • Skapa ett nytt inlägg:
    • wp post create –post_type=post –post_title=”Min rubrik” –post_content=”Innehåll…” –post_status=publish
    • Detta skapar ett nytt blogginlägg med angiven titel, innehåll och publicerar det direkt (–post_status=publish). Utelämnar du –post_status blir standard draft (utkast). Du kan ange valfritt fält, som –post_author=<user> (annars blir admin/1 författare), –post_date=”<YYYY-MM-DD HH:MM:SS>” för publiceringsdatum osv. Exempel:
    • wp post create –post_title=”Hej världen” –post_content=”Detta är mitt inlägg.” –post_status=draft
    • ger ett nytt inlägg som utkast. Kommandot returnerar t.ex. “Success: Created post 123.”, där 123 är det nya inläggets ID.
    • Skapa en sida: I WordPress är sidor en post typ (page). Använd –post_type=page för att skapa en sida i stället för ett blogginlägg. Exempel:
    • wp post create –post_type=page –post_title=”Om Oss” –post_content=”Här är info om oss…” –post_status=publish
    • Detta skapar en sida med titel ”Om Oss” och publicerar den. Utdata från WP-CLI indikerar postens ID, t.ex. “Success: Created post 157.” (även sidor rapporteras som ”post” internt, då allt är posts med olika typer).
    • Lista inlägg/sidor: wp post list – listar inlägg. Som standard listas de 10 senaste inläggen med kolumner (ID, post_type, post_status, post_title, etc). Använd flaggor för att anpassa:
    • –post_type=<typ> för att välja typ (t.ex. post, page eller en egen CPT).
    • –posts_per_page=20 för att lista fler än standard 10.
    • –format=<format> för att ändra utdataformat (t.ex. csv, json, table (default), ids endast ID:n etc).
      Exempel: wp post list –post_type=page –fields=ID,post_title,post_status listar alla sidor med bara ID, titel och status. Du kan kombinera med grep eller –format=json för skript. För att t.ex. få alla publicerade inläggs ID: wp post list –post_type=post –post_status=publish –format=ids.
    • Uppdatera ett inlägg/sida: wp post update <post-id> [–post_title=”Ny titel”] [–post_status=<status>] [–post_content=”…”] – ändrar fälten för ett befintligt inlägg. Du anger inläggets ID eller unika slug. Exempel:
    • wp post update 123 –post_title=”Uppdaterad rubrik” –post_status=publish
    • uppdaterar inlägget med ID 123, sätter ny titel och ändrar status till publikt (om det t.ex. var ett utkast tidigare). Om du bara vill ändra status kan du köra wp post update <id> –post_status=draft (för att avpublicera t.ex.). Kommandot ger “Success: Updated post 123.” om det gick bra. Du kan på liknande sätt ändra andra fält, t.ex. –post_author=<user> eller anpassade fält med –meta_input='{”nyckel”:”värde”}’ JSON-format.
    • Radera ett inlägg/sida: wp post delete <post-id> [–force] – tar bort inlägget med angivet ID. Som standard flyttas inlägg till papperskorgen (Trash) om force ej anges, motsvarande att “skräpa” inlägget via admin[71]. Med flaggan –force tas det bort permanent direkt (bypassar papperskorgen). Exempel:


    • wp post delete 157
    • ger “Success: Trashed post 157.” och inlägget hamnar i Trash. wp post delete 157 –force skulle ge “Success: Deleted post 157.” och inlägget raderas helt. Du kan ta bort flera på en gång genom att ange flera ID:n separerade med mellanslag, eller ange $(wp post list … –format=ids) för att radera batchvis (kraftfullt, men använd med försiktighet!).
    • Skapa inlägg från fil eller stdin: Avancerat: wp post generate kan generera många inlägg för testsyften (finns i wp-cli exempelpaket), och wp post create kan läsa från en fil: t.ex. wp post create newpost.txt –post_title=”Titel” om newpost.txt innehåller innehåll. Dessa används mer sällan men är bra att känna till.
    • Andra post-verktyg: WP-CLI har kommandon för andra post-relaterade objekt:
    • wp menu – hantera navigationsmenyer (skapa menyer, menu items etc).
    • wp comment – hantera kommentarer (listar, godkänn/ta bort kommentarer).
    • wp term – hantera kategorier, taggar och andra taxonomier (skapa/ta bort termer).
    • wp media – importera eller regenerera mediefiler (t.ex. wp media import <fil> kopplar en fil i uppladdningskatalogen till biblioteket, wp media regenerate skapar om miniatyrbilder.)
    • wp post meta – hantera custom fields (post meta) för inlägg.

    Dessa sträcker sig utanför just inlägg/sidor men är del av innehållshanteringen man kan script på liknande sätt. Se wp help <kommando> för mer info om respektive.

    Verktyg för felsökning och underhåll (Webbplats-hälsa, cron, cache m.m.)

    WP-CLI erbjuder också hjälp för att felsöka problem, kontrollera webbplatsens integritet och utföra underhåll. Här är några användbara verktyg och kommandon:

    Kontroll av WordPress-integritet:
    Verifiera kärnfiler: wp core verify-checksums – kontrollerar att alla WordPress core-filer stämmer överens med originalen från WordPress.org[73]. Om någon fil är ändrad eller saknas får du en varning. T.ex. kan output visa om du har oönskade filer (som kan indikera malware) eller om någon råkat ändra en kärnfil. Vid korrekt core får du “Success: WordPress installation verifies against checksums.”. Detta motsvarar “Verifying WordPress files” i Site Health.
    Plugin/tema-kontroll: På motsvarande sätt kan du installera WP-CLI-paket för att verifiera plugins/teman (t.ex. wp plugin verify-checksums för plugins från .org). Dessa kontrollerar filer mot versionsarkiven – användbart vid felsökning av hack.

    Debug-läge och fellogg:
    Aktivera WP_DEBUG: Som nämnts i config-delen, kan du sätta WP_DEBUG och WP_DEBUG_LOG till true via wp config set för att börja logga PHP-fel till wp-content/debug.log. Du kan även köra med –debug flagga på WP-CLI-kommandon för att se mer detaljerad körinformation.
    WP-CLI shell: Kör wp shell för att få en interaktiv PHP-console med WordPress kontext. Här kan du skriva godtycklig PHP-kod med WordPress laddat – bra för att testa funktioner eller felsöka direkt i terminalen. Skriv t.ex. ?> get_option(’siteurl’); i shellet för att se sajtens URL-inställning. Avsluta med Ctrl+D.
    Evalueringskommando: wp eval ’<kod>’ låter dig köra en liten bit PHP-kod i WordPress. T.ex. wp eval ’var_dump(get_theme_mod(”home_text”));’ för att skriva ut värdet av en theme_mod.

    Cron-jobb (WP-Cron) hantering:
    WordPress Cron (WP-Cron) hanterar schemalagda händelser (som publicera planerade inlägg, köra backup-pluginer etc). WP-CLI ger insyn och kontroll:
    – wp cron event list – listar alla schemalagda cron-händelser i WordPress, med nästa körningstid, intervall, hook-namn och args. Detta motsvarar att installera ett plugin som WP Crontrol och titta i admin, men nu direkt i terminalen. Du kan t.ex. snabbt se om någon cron är overdue (förfallen).
    – wp cron event run –due-now – triggar omedelbart alla förfallna cron-händelser[76]. Om din wp-cron av någon anledning inte körts (t.ex. på grund av låg trafik eller tidigare fel) kan detta kommandot tvångsköra allt som är due.
    – wp cron event run <hook> – kör en specifik cron-händelse (oavsett om den är scheduled för framtiden) manuellt[75]. Ersätt <hook> med t.ex. publish_future_post för att tvinga publicera planerade inlägg, eller valfri custom hook.
    – wp cron event schedule <hook> [<tid>] [<intervall>] – schemalägg en ny cron-händelse på given hook. T.ex. wp cron event schedule my_custom_hook ’+5 minutes’ skulle lägga till en engångshändelse på my_custom_hook om 5 minuter. Och wp cron event schedule my_custom_hook now daily skulle lägga till en återkommande daglig händelse som startar nu. (Notera: att skapa en återkommande cron som kör kod kräver att det finns en hook registrerad i temat/pluginkoden som lyssnar på my_custom_hook – WP-CLI kan schemalägga men inte skapa själva hook-funktionen.)
    – wp cron event delete <hook> – tar bort alla framtida händelser med angiven hook-namn. Bra om du vill avbryta en schemalagd uppgift.
    – wp cron schedule list – listar de intervall som är definierade (hourly, twicedaily, daily plus eventuella custom).
    Tips: I produktionsmiljö kan det vara bättre att inaktivera WP-Cron och istället köra ett äkta system-cronjob. Du kan då ställa DISABLE_WP_CRON till true i wp-config och sedan låta serverns crontab köra wp cron event run –due-now var 5:e minut. Detta ger mer pålitlig körning av schemalagda händelser för sajter med ojämn trafik.

    Cache och transients:
    Rensa objektcache: wp cache flush – tömmer WordPress objektcache[56]. Om du använder en persistent cache backend (Redis/Memcached) via någon drop-in eller cache-plugin, töms cachen. Detta kommando är användbart efter att man gjort stora ändringar (t.ex. search-replace) eller om man misstänker att cachen innehåller inaktuella data. (Observera att detta inte rensar sid-cache i t.ex. WP Super Cache eller liknande – dessa har egna kommandon/plugin-kommandon. Det här avser WordPress inbyggda cache-system för objekt.)
    Exempel:

    wp cache flush

    ger “Success: The cache was flushed.” om en cache fanns och nu är tömd. Det skadar aldrig att flush:a cachen, värsta fallet var den tom redan.

    • Transients: WordPress transients är tillfälliga cachelagrade värden i databasen. För att städa upp dem finns wp transient delete <nyckel> eller wp transient delete –all för att rensa ut alla transients. Exempel:
      wp transient delete –all
    • tar bort allt i options-tabellen som är transients (nyttigt om du vill “fabriksnollställa” cachade API-svar etc). Du kan också rensa expirerade transients med wp transient delete-expired.
    • Rewrite-regler: Efter ändringar i permalänkar eller custom post types kan du behöva flush:a rewrite rules. Använd wp rewrite flush (lägg till –hard om du vill ta bort .htaccess-regler också och generera om). Detta motsvarar ”Spara” permalänk-inställningar i admin. WP-CLI gör det tyst utan output (så du kan script-runna det efter t.ex. aktivering av ett CPT-plugin).
    • Site Health infos: WordPress 5.2+ har ”Site Health”-funktion med flera kontroller. Det finns inget direkt wp site health-kommando, men många av kontrollerna kan du göra via WP-CLI själv (t.ex. checksums, plugin-uppdateringar, PHP-version etc som redan nämnts). Det finns ett inofficiellt WP-CLI paket wp-cli/doctor (wp doctor) som samlar hälsokontroller[80]. Med det kan du köra wp doctor check för en serie tester (t.ex. versioner, inställningar, filbehörigheter m.m.). För att använda det: wp package install wp-cli/doctor-command och sedan wp doctor check. Detta är avancerat, men värt att veta om för omfattande hälsogenomgång via CLI.

    Övriga underhållstips:
    Verktyg för databaskontroll: wp doctor har checks för t.ex. stora alternativ (optioner som autoloadar mycket data), onödiga cron events etc.
    Teman/Plugins konfliktfelsökning: Använd wp plugin deactivate –all och aktivera en och en via CLI för att hitta konflikt, eller wp theme activate twenty<year> för att snabbt byta till standardtema.
    Checksum för plugins/teman: wp plugin verify-checksums <slug> kollar pluginets filer mot WordPress.org (bra om du misstänker hackat plugin). Samma med wp theme verify-checksums.

    Sammanfattningsvis kan många admin- och felsökningsåtgärder göras direkt i terminalen, vilket sparar tid och möjliggör automation.

    Tips för automation (cronjobs, skript)

    En av de största fördelarna med WP-CLI är möjligheten att automatisera uppgifter. Här är några tips för att integrera WP-CLI i skript och schemalagda jobb:

    • Köra WP-CLI i cron (schemaläggning): Om du vill att en WP-CLI-kommando ska köras automatiskt (t.ex. varje natt) kan du använda serverns crontab. Viktigt: Cron-jobb körs ofta i en begränsad miljö, kanske utan din vanliga PATH eller med annan PHP-version. För att vara säker, använd fullständiga sökvägar. T.ex.:
    • 0 3 * * * /usr/bin/php /usr/local/bin/wp plugin update –all –allow-root –quiet –path=/var/www/mysite
    • Detta exempel skulle kl 03:00 dagligen köra WP-CLI och uppdatera alla plugins på en specifik site. Här använder vi full path till php och wp samt anger –path till WP-installationen. Vi lägger också till –quiet för att undvika onödig output och –allow-root ifall cron körs som root (ej nödvändigt om du kör som användare)[81].

    Alternativt kan du i cron först cd till WP-mappen:

    0 3 * * * cd /var/www/mysite && wp plugin update –all –quiet

    (förutsatt att wp ligger i PATH för cron, annars ange full path). Oderland rekommenderar explicit att ange både php och wp vägar i cron i sin miljö[81], så anpassa efter din server.

    • Skript med flera kommandon: Du kan kedja WP-CLI kommandon med && i shell, eller skriva Bash/Powershell-skript som kör en sekvens. Exempel på enkelt bash-skript för backup (Linux/macOS):
    • #!/bin/bash
      wp db export /backup/db-$(date +%F).sql –quiet
      tar -czf /backup/wpfiles-$(date +%F).tar.gz wp-content/ –exclude=’cache’
    • Detta skript skulle dumpa DB och packa wp-content varje gång det körs. Lägg det i cron för återkommande backups. (Kom ihåg att ha skrivrättigheter för backupkatalogen och justera vägar.)
    • Miljövariabler och konfiguration: Du kan skapa en global eller projekt-specifik config-fil för WP-CLI (~/.wp-cli/config.yml globalt eller wp-cli.local.yml i projektmapp). Där kan du sätta standardflaggor, alias för sajter, default PATH mm. T.ex.:
    • path: /var/www/mysite
      color: false
    • i en lokal yml så slipper du ange –path varje gång för just den sajten. Du kan även definiera alias för olika installationer (så man kan köra wp @production plugin update –all för att rikta till en viss server via ssh, etc). Se WP-CLI docs om Aliases för avancerad orkestrering.
    • Interaktivt vs icke-interaktivt: I skript och cron vill du undvika väntan på användarinput. Använd flaggor som –yes för att automatisk bekräfta frågor (t.ex. vid wp db drop eller wp plugin delete som normalt frågar). Använd –quiet för att undertrycka framgångsmeddelanden. Fånga fel (exit codes) i skript för att ev. skicka larm. Alla WP-CLI-kommandon returnerar exit code 0 vid success, eller 1 vid fel (samt 0/1 per del om du kör flera med && eller || logik).
    • WP-CLI som del av deploy/CI: Du kan integrera WP-CLI-kommandon i deployscripts eller CI-pipelines. Exempel: Efter att dra en ny version av koden, kör wp core update-db –quiet för att applicera eventuella databasuppdateringar. Eller kör testkommandon som wp core verify-checksums för att se att inga oväntade filändringar skett efter deploy. I ett skript kan du kombinera med systemkommandon, t.ex. skicka e-post/Slack om wp plugin update uppdaterade något.
    • Parallelisering: WP-CLI körs normalt synkront, men du kan köra flera instanser parallellt om du t.ex. vill göra saker snabbare över flera sajter. Var försiktig med databastunga operationer parallellt. WP-CLI har inga inbyggda background-job hanterare, men man kan använda & i bash eller job control för att köra i bakgrunden.
    • Logging: Du kan öka loggning med –debug eller –verbose (vissa kommandon). För skript, fånga utdata och fel till loggfiler: t.ex. wp … >> /var/log/wpcli.log 2>&1 i cron för att spara all output (inklusive ev. fel) till en loggfil för granskning.
    • Säkerhet: Eftersom WP-CLI ger kraftfull åtkomst till din site, var försiktig med att låta skript köra som root. Om möjligt, kör cronjobs som samma användare som äger WP-filerna. Se också till att inte exponerar känsliga creds; lagra inte klartextlösenord i skript (använd env-variabler eller wp-cli.yml med vars).
    • Aliasexempel för flera sajter: I ~/.wp-cli/config.yml kan du definiera:
    • @prod:
      ssh: [email protected]:/home/user/htdocs
      @stage:
      ssh: [email protected]:/home/user/htdocs
    • Då kan du köra wp @prod plugin update –all från din lokala maskin så kopplar WP-CLI via SSH till servern och kör där[13]. Väldigt användbart för central hantering av många WP-installationer.

    Kort sagt, WP-CLI är skriptvänligt. Genom att kombinera dess kommandon med vanliga shell-skript eller cron kan du automatisera rutinuppgifter som uppdateringar, backup, städning m.m. Detta minimerar manuellt arbete och risken för misstag, samtidigt som det ger konsekventa resultat över tid. Utforska WP-CLI dokumentationen för ännu fler möjligheter och kom ihåg att alltid testa skript på en staging miljö innan du kör dem skarpt.

Lathund: WP-CLI (WordPress Command Line Interface)

Innehållsförteckning

WP-CLI är WordPress kommandoradsverktyg som låter dig hantera WordPress-installationer via terminalen/SSH istället för via webbgränssnittet[1]. Med WP-CLI kan du installera, uppdatera och administrera WordPress kärna, tillägg, teman, användare, databaser mm. Denna lathund riktar sig till tekniska användare (utvecklare/systemadministratörer) och täcker installation och 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, och på Windows att PHP är tillgängligt i PATH.

Linux och macOS (Phar-metoden)

  1. Ladda ner WP-CLI phar-fil: Använd cURL eller wget för att hämta WP-CLI som en Phar-fil (PHP-arkiv). Exempel med cURL:
  • curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
  • Detta laddar ner filen wp-cli.phar[2].
  1. Testa körbarhet: Kör filen med PHP för att se så allt fungerar:
  • php wp-cli.phar –info
  • Du bör se information om din PHP- och WP-CLI-version om det lyckas[3].
  1. Gör WP-CLI globalt tillgängligt: Gör filen körbar och flytta den till en mapp i din PATH, t.ex. /usr/local/bin:
  • chmod +x wp-cli.phar
    sudo mv wp-cli.phar /usr/local/bin/wp
  • Efter detta kan du använda kommandot wp globalt i terminalen[4].
  1. Verifiera installationen: Kör wp –info för att försäkra att WP-CLI fungerar globalt (det bör visa WP-CLI-version, PHP-version etc. likt tidigare)[5].

Alternativ (Homebrew macOS): På macOS kan du installera via Homebrew:
brew install wp-cli

Uppdatera WP-CLI

Om du installerat WP-CLI via Phar-metoden kan du uppdatera det enkelt med:

wp cli update

Kör med sudo om din wp ligger i en systemmapp som kräver root. WP-CLI kommer då kontrollera senaste version och uppdatera sig själv[10]. Du kan även lägga till flaggan –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 är:

wp <kommando> <underkommando> [–option1=värde …]

Exempel: wp plugin install akismet –activate installerar ett plugin och aktiverar det[12].

FlaggaBeskrivning
--path=<sökväg>Kör kommandot mot en WordPress-installation i angiven sökväg (om du inte redan står i rätt katalog).
--url=<URL>Specificerar URL, t.ex. vid multisite eller när kommandon körs utan att stå i installationskatalogen (exempel: --url=example.com).
--user=<användare>Kör kommandot som en viss WordPress-användare (inloggningsnamn, ID eller e-post). Användbart för kommandon som kräver särskilda rättigheter.
--allow-rootInaktiverar varningen som hindrar körning som root. Används vid behov i t.ex. containrar eller skript (använd med försiktighet).
--quietTyst läge – döljer icke-felmeddelanden. Lämpligt för cronjobb och automatiserade skript.
--debugVisar utökad felsökningsinformation, inklusive PHP-notiser och körspårning.
--promptFrågar interaktivt efter värden som inte angivits, t.ex. lösenord, för att undvika klartext i kommandoraden.

Hjälp:
Du kan alltid få hjälp för tillgängliga kommandon. Kör wp help för översikt eller wp help <kommando> / wp <kommando> –help för detaljerad hjälp om ett specifikt kommando (inklusive tillgängliga underkommandon och argument).

Exempel på enkla kommandon: (Förutsatt att du står i WordPress-mappen)

KommandoBeskrivning
wp core versionVisar vilken version av WordPress som är installerad.
wp core check-updateKontrollerar om det finns en ny WordPress-version tillgänglig för uppdatering.
wp plugin statusVisar alla installerade plugins samt om de är aktiva, inaktiva och om uppdateringar finns.
wp theme statusVisar alla installerade teman, vilket tema som är aktivt och om uppdateringar finns.
wp help <kommando>Visar hjälptext, tillgängliga underkommandon och flaggor 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. WP-CLI gör uppdateringar mycket smidiga:

  • Uppdatera WordPress (kärnan): Kör wp core update för att hämta och installera senaste WordPress-versionen. Efter en större versionsuppdatering bör du även köra databasuppdateringen med wp core update-db. (motsvarar steget som annars körs via admin när databasen behöver uppgraderas). Du kan kontrollera om det finns en uppdatering först med wp core check-update om du vill. Specificera –version=<x.y.z> om du vill uppdatera/downgrada till en viss version, eller –minor för att bara ta minor-versioner.
  • Uppdatera alla tillägg: Använd wp plugin update –all för att uppdatera samtliga installerade plugins till senaste versionen. WP-CLI laddar då ner och uppdaterar varje plugin i tur och ordning.
  • Uppdatera specifikt plugin: Kör wp plugin update <plugin-slug> för att uppdatera ett enskilt plugin. Exempel: wp plugin update akismet uppdaterar Akismet-pluginet (ersätt akismet med slug för pluginet du vill uppdatera).
  • Uppdatera alla teman: Kör wp theme update –all för att uppdatera samtliga installerade teman på en gång.
  • Uppdatera specifikt tema: Använd wp theme update <temanamn> för att uppdatera ett visst tema (t.ex. wp theme update twentytwenty för Twenty Twenty-temat).
  • Språkfiler: För att uppdatera WordPress språkpaket kan du använda wp language core update (samt liknande för plugins/teman). Detta körs normalt automatiskt vid core-uppdatering, men kan göras manuellt vid behov.

Notera: WP-CLI-kommandon för uppdatering är icke-interaktiva. Det betyder att uppdateringar körs direkt utan ytterligare bekräftelse. Se till att ta backup innan du kör större uppdateringar i skarpa miljöer. Mer om backup nedan.

Plugin-hantering (installera, aktivera, uppdatera, ta bort, lista)

WP-CLI kan hantera installation, aktivering, uppdatering m.m. av tillägg (plugins) mycket effektivt:

  • Installera ett plugin: wp plugin install <plugin-slug> – laddar ner och installerar pluginet med angivet slug (namn) från WordPress plugin-katalogen. Du kan även ge en zip-fil eller URL till ett plugin. Använd flaggan –activate för att automatiskt aktivera pluginet efter installation.

    Exempel:
    wp plugin install woocommerce –activate
  • installerar och aktiverar WooCommerce i ett steg.
  • Aktivera ett plugin: wp plugin activate <plugin-slug> – aktiverar ett redan installerat plugin[29]. Exempel: wp plugin activate akismet aktiverar Akismet-pluginet. Om pluginet inte är installerat får du ett fel.
  • Inaktivera (deaktivera) ett plugin: wp plugin deactivate <plugin-slug> – stänger av ett aktivt plugin. Pluginet finns kvar installerat men körs inte. Exempel: wp plugin deactivate akismet stänger av Akismet. Du kan inaktivera alla plugins med flaggan –all (t.ex. vid felsökning).
  • Uppdatera plugin: wp plugin update <plugin-slug> – uppdaterar angivet plugin till senaste version. Lägg till –version=<x.y.z> om du behöver en specifik version, eller –all för att uppdatera alla plugins.
  • Ta bort (radera) ett plugin: wp plugin delete <plugin-slug> – avinstallerar pluginet (tar bort filerna)[34]. Observera att detta inte återställer några ändringar pluginet gjort i databasen. Använd –inactive för att ta bort alla inaktiva plugins i ett svep, eller –all för alla plugins (använd försiktigt!). Exempel: wp plugin delete hello tar bort det klassiska ”Hello Dolly”-pluginet.
  • Lista plugins: wp plugin list – listar alla installerade plugins med kolumner för namn, status (aktiv/inaktiv), tillgänglig uppdatering, version etc. Du kan filtrera listan med flaggor, t.ex. –status=active för enbart aktiva plugins, –update=available för de med uppdateringar[36]. Detta kommando är användbart för överblick, t.ex. vilka plugins som är aktiva eller behöver uppdateras.
KommandoBeskrivning
wp plugin install <slug> [--activate]Installerar ett plugin (från WP-katalogen som standard). Lägg till --activate för att aktivera direkt efter installation.
wp plugin activate <slug>Aktiverar ett installerat plugin. Kräver att pluginet redan är installerat.
wp plugin deactivate <slug>Inaktiverar (stänger av) ett plugin, men lämnar det installerat. Använd --all för att inaktivera alla plugins.
wp plugin update <slug> [--version=X.Y]Uppdaterar pluginet till senaste version (eller angiven version). Använd --all för att uppdatera alla plugins.
wp plugin delete <slug>Tar bort (avinstallerar) pluginet helt. Använd --all för alla plugins (försiktighet!) eller --inactive för alla inaktiva.
wp plugin listListar installerade plugins och deras status. Bra för att få överblick.

Temahantering

WP-CLI hanterar teman på ett liknande sätt som plugins. Kommandomönstret är detsamma med wp theme i stället för wp plugin:

  • Installera ett tema: wp theme install <tema-slug> – laddar ner och installerar temat från WordPress temakatalog. Exempel: wp theme install twentytwentythree installerar Twenty Twenty-Three temat. Använd –activate flaggan för att aktivera temat direkt efter installation om du vill byta tema omgående.
  • Aktivera ett tema: wp theme activate <tema-slug> – byter aktivt tema till det angivna. T.ex. wp theme activate twentytwentythree aktiverar Twenty Twenty-Three. Observera att det nya temat bör vara installerat innan (annars felmeddelande). Om det nya temat inte stödjer vissa meny- eller widgetpositioner kan du behöva justera dessa manuellt efter aktivering (samma som via admin).
  • Uppdatera teman: wp theme update <tema-slug> uppdaterar ett visst tema till senaste version. Använd –all för att uppdatera alla teman samtidigt[25]. Exempel: wp theme update –all uppdaterar samtliga installerade teman i din WordPress-installation.
  • Ta bort ett tema: wp theme delete <tema-slug> tar bort ett installerat tema (gäller även om det är oaktiverat). WordPress kräver att minst ett tema finns kvar (för att hantera t.ex. fallback om aktuellt tema tas bort), så ta inte bort alla teman. Exempel: wp theme delete twentyseventeen tar bort Twenty Seventeen-temat. Du kan t.ex. radera äldre standardteman du inte använder.
  • Lista teman: wp theme list listar alla installerade teman med kolumner för namn, status (aktivt eller ej), uppdateringsstatus och version. T.ex. ser du vilket tema som är aktivt (markerat som ”active”) och om några teman har uppdateringar tillgängliga (kolumnen ”update”). Detta är användbart för att snabbt se t.ex. om du har något gammalt tema installerat som kan tas bort eller uppdateras.

Obs: Precis som med plugins kan du använda liknande flaggor för att filtrera listan, t.ex. wp theme list –status=inactive för alla inaktiva teman, eller wp theme list –update=available för teman med uppdateringar.

Användarhantering (skapa, ta bort, ändra roller, lista)

WP-CLI kan skapa och hantera WordPress-användare, inklusive roller och behörigheter:

Skapa ny användare:
wp user create <användarnamn> <email> –role=<roll>

  • Detta skapar en ny användare med angivet användarnamn, e-post och tilldelar rollen du specificerar[39][40]. Rollen kan vara t.ex. administrator, editor, author, contributor eller subscriber. Lösenord genereras automatiskt om du inte anger flaggan –user_pass=<lösenord>.

    Exempel:
  • wp user create johan [email protected] –role=author
  • skapar en användare johan med författar-roll[39]. (OBS: Byt ut användarnamn och e-post mot de värden du vill använda i praktiken[40].)
  • Lista användare: wp user list – visar en lista på alla användare på webbplatsen med kolumner för ID, inloggningsnamn, display-namn, e-post, registreringsdatum och roller[41]. Använd flaggor som –role=<roll> för att filtrera på en viss roll (t.ex. visa alla subscriber)[42]. Du kan också ändra format, t.ex. –fields=ID,user_login,role –format=csv om du vill exportera vissa fält[43]. Standardvisning är en tabell i terminalen.
  • Ändra (uppdatera) en användare: wp user update <user> [–fält=värde] – uppdaterar angivna fält för en befintlig användare. Du kan referera till användaren med användar-ID, inlogg eller e-post. Vanliga användningsområden:
  • Byta roll: wp user update <användar-id> –role=<ny_roll> ändrar en användares roll. T.ex. wp user update 5 –role=editor sätter användare med ID 5 till redaktör. (Alternativt kan du använda wp user set-role <user> <roll> om du vill sätta endast den rollen och ta bort ev. andra roller.)
  • Byta lösenord: wp user update <user> –user_pass=<nyttlösenord>.
  • Ändra visningsnamn eller andra fält: t.ex. wp user update <user> –display_name=”Nytt Namn” ändrar visningsnamnet.

Exmepel :

KommandoBeskrivning
wp user update 2 --display_name="John Doe" --user_pass="hemligt"Uppdaterar användare med ID 2, sätter visningsnamn till ”John Doe” och ändrar lösenord. Flera fält kan ändras i samma kommando.
wp user delete <user> [--reassign=<annat_user>] [--yes]Tar bort en användare (ange inlogg, ID eller e-post). Om användaren har innehåll måste detta raderas eller omassigneras till annan användare med --reassign. Utan --yes krävs interaktiv bekräftelse.
wp user delete 3 --reassign=1 --yesTar bort användare med ID 3 och tilldelar alla dess inlägg och sidor till användare med ID 1 utan att fråga om bekräftelse.
wp role listVisar alla tillgängliga användarroller i WordPress.
wp role create <roll> <visningsnamn>Skapar en ny användarroll med angivet namn.
wp role delete <roll>Tar bort en befintlig användarroll.
wp role resetÅterställer WordPress standardroller och tillhörande behörigheter (capabilities).
wp user add-role <user> <roll>Lägger till en extra roll för en användare (utöver befintlig roll).
wp user remove-role <user> <roll>Tar bort en roll från en användare.

Hantera roller separat:
WP-CLI har även underkommandon för att direkt hantera användarroller: wp role. Du kan lista alla roller med wp role list, lägga till en ny roll med wp role create, ta bort med wp role delete, eller återställa defaultroller med wp role reset (återställer WordPress standarduppsättning roller och capabilities). För enskilda användare finns också wp user add-role <user> <roll> och wp user remove-role <user> <roll> om du vill ge eller ta bort ytterligare roller (WordPress stödjer flera roller per användare, men i standardinstallation används normalt en primär roll per användare). Dessa är mer ovanliga och används mest i multisite eller specialfall.

Tips: Använd wp user generate (i WP-CLI paket) för att generera många testanvändare ifall du behöver testdata. Även wp user spam/delete/restore finns för multisite-hantering. Kontrollera wp help user för fler kommandon om användarhantering.

Databashantering (export/import, sök-ersätt, optimering)

WP-CLI underlättar många databasrelaterade uppgifter. Alla wp db-kommandon använder uppgifterna i wp-config.php för att ansluta till databasen. Nedan de vanligaste:

  • Exportera databasen (backup): wp db export [filnamn.sql] – tar en dump/backup av hela WordPress-databasen till en SQL-fil. Om du inte anger filnamn genereras ett standardnamn innehållande databasen och datum. Exempel:
  • wp db export backup.sql
  • skapar filen backup.sql i nuvarande katalog med hela DB-innehållet. WP-CLI visar något i stil med “Success: Exported to ’backup.sql’.” vid lyckad export. Du kan ange en sökväg för att spara filen på annan plats (t.ex. en backup-mapp). Det går även att exkludera tabeller med flaggan –exclude_tables=wp_options,wp_users,… om man t.ex. inte vill exportera cache eller statistik-tabeller.
  • Importera databasen: wp db import <filnamn.sql> – läser in en SQL-dump i databasen. Vanligen används detta för att återställa en backup eller migrera data.

    Varning: kommandot skriver över befintligt databasinnehåll med datan i dump-filen. Se därför till att du importerar i rätt databas. Exempel:
  • wp db import backup.sql
  • läser in filen backup.sql till databasen[50] (måste vara samma databasstruktur, version etc som din WP-installation för att fungera). Lyckas det ser du “Success: Imported from ’backup.sql’.” i utmatningen.
  • Sök och ersätt: wp search-replace <söksträng> <ersättningssträng> [–dry-run] – söker igenom hela databasen efter en text och ersätter med en annan. Detta är ovärderligt vid t.ex. domänändringar eller byta HTTP -> HTTPS på alla länkar. WP-CLI hanterar serialiserade PHP-data, vilket gör det säkrare än en vanlig SQL-UPDATE vid sådana ändringar[51]. Exempel:


  • wp search-replace ’http://gammal-domän.se’ ’https://ny-domän.se’
  • söker igenom databasen efter alla förekomster av http://gammal-domän.se och ersätter med https://ny-domän.se. Lägg alltid till –dry-run första gången för att se en rapport av hur många träffar och ändringar som skulle göras, utan att faktiskt ändra något. När du kontrollerat utfallet, kör kommandot igen utan –dry-run för att genomföra förändringarna. WP-CLI summerar antalet ersättningar per tabell när det är klart. Tänk på att byta ut strängarna i kommandot till dina faktiska värden (t.ex. gammal/ny domän). Efter en sådan search-replace kan det vara bra att rensa cache (t.ex. object cache) ifall du använder det, för att ändringarna ska slå igenom.
  • Optimera databasen: wp db optimize – optimerar databastabellerna (motsvarar att köra SQL-kommandot OPTIMIZE TABLE på alla WP-tabeller). Detta kan defragmentera tabeller och frigöra utrymme efter många rader har raderats, vilket i vissa fall ger bättre prestanda. Kör kommandot så här:


  • wp db optimize
  • WP-CLI svarar med något som “Success: Database optimized.” när det är klart. Det är ofarligt att köra och du kan göra det periodiskt (t.ex. i månaden) som underhåll.
  • Reparera databasen: wp db repair – reparerar korrupta tabeller om möjligt (motsvarar att köra REPAIR TABLE). WordPress har en inbyggd rep-funktion via wp-config (define(’WP_ALLOW_REPAIR’,true)), men WP-CLI låter dig köra reparering direkt. Exempel: wp db repair försöker laga fel i databasen och ger “Success: Database repaired.” om lyckat. Använd detta om du misstänker fel i databasen (t.ex. efter en krasch).
  • Databasfrågor och info: Ytterligare nyttiga db-kommandon:
  • wp db query ”<SQL>” – kör en valfri SQL-fråga mot databasen (t.ex. en SELECT eller UPDATE). Använd med försiktighet.
  • wp db size – visar databasens storlek per tabell och totalt, bra för att se om någon tabell är ovanligt stor.
  • wp db tables – listar alla WP-databastabeller (du kan filtrera per prefix, nätverk mm).
  • wp db check – kör en kontroll av databasen (motsvarar mysqlcheck utan reparera).
  • wp db prefix – visar vilket tabellprefix installationen använder (t.ex. wp_).

Säkerhetstips: Innan du kör destruktiva kommandon (som search-replace utan dry-run, eller import som skriver över DB), ta alltid en backup med wp db export. WP-CLI’s databashantering är kraftfullt, så dubbelfodra alltid att kommandot är korrekt för att undvika oönskade ändringar.

Säkerhetskopiering och återställning

Det finns inget enskilt WP-CLI-kommando som tar en fullständig backup av hela WordPress-webbplatsen (filer och databasen), men du kan med WP-CLI enkelt skript-automatisera backup. Grundkomponenterna i en WordPress-backup är:

  • Databasbackup: Använd wp db export som nämnt ovan för att skapa en dump av databasen. Det viktigaste innehållet (inlägg, sidor, inställningar etc) finns i databasen, så en SQL-backup är kritisk. Exempel:
  • wp db export ~/wp-backup-`date +%F`.sql
  • (Kommandot ovan sparar backupfilen med dagens datum i hemkatalogen; i Windows kan du använda %DATE% eller köra via Bash in WSL/MinGW för liknande funktionalitet.)
  • Filbackup (wp-content): Databasen innehåller det dynamiska innehållet, men du bör också säkerhetskopiera filsystemet, främst wp-content-mappen som innehåller uppladdade media, plugins och teman. WP-CLI har inget inbyggt kommando för att zipa eller kopiera filer, så använd vanliga systemverktyg som tar/zip eller skript för detta. T.ex.:
  • tar -czf wp-content-backup.tar.gz wp-content/
  • (detta skapar en gzippad tar-arkiv av hela wp-content katalogen). Se till att även spara wp-config.php och eventuella specialfiler om du manuellt säkerhetskopierar filer.
  • Exportera innehåll (XML): Alternativt eller kompletterande kan du använda wp export för att exportera allt innehåll (inlägg, sidor, kommentarer, custom fields, menyer etc) till en WordPress XML/WXR-fil. Detta motsvarar verktyget

    Export i WordPress admin. Exempel:
  • wp export –dir=./ –filename_format=backup-%date%.xml
  • genererar en eller flera XML-filer (om mycket innehåll) i angiven katalog. WP-CLI ger en “Success: All done with export.” när klar[63]. Dessa XML-filer kan senare importeras på en annan WordPress-sajt.
  • Återställning via import: För att återställa en hel sajt från backup behöver du importera databasen och återställa filerna:
  • Databas: wp db import <backup.sql> för att läsa in SQL-backupen som tidigare nämnts.
  • Filer: packa upp din filbackup (t.ex. kopiera tillbaka wp-content mappen och placera filerna på samma platser).
  • XML-innehåll: Om du använt wp export, importera med wp import <fil>.xml –authors=create. wp import använder WordPress importer-verktyget; flaggan –authors=create låter WP-CLI skapa nya användarkonton om XML-filen innehåller författare som inte finns. WP-CLI visar progress för varje post som importeras och slutar med “Success: Finished importing…” när klart. Notera att för att wp import ska fungera kan det behöva att WordPress Importer-pluginet är installerat – WP-CLI hanterar normalt detta automatiskt genom att tillfälligt aktivera importeraren.

Tips: För en rutinmässig backup kan du skapa ett skript eller cronjob (se avsnitt om automation) som kör wp db export och kopierar wp-content. Det finns även plugins som WP-CLI kan interagera med (som duplicator, updraftplus CLI-kommandon etc), men standardmetoderna ovan är plugin-oberoende.

Vid återställning i en ny miljö, kom ihåg att uppdatera konfigurationen (t.ex. databasuppgifter i wp-config.php) och eventuellt köra search-replace om domän eller sökvägar ändrats (t.ex. ändra utvecklings-URL till produktion-URL, se avsnitt Databashantering ovan).

Inställningar och konfiguration (wp config)

WP-CLI erbjuder kommandon för att läsa och ändra WordPress konfigurationsfil wp-config.php utan att öppna en texteditor. Detta är användbart för att t.ex. automatisera installation eller ändra inställningar:

  • Skapa en ny wp-config.php: wp config create –dbname=<db_namn> –dbuser=<db_anv> –dbpass=<db_lösenord> [–dbhost=<host>] [–locale=<språk>] – genererar en ny wp-config.php med de givna databaskopplingarna. Används vid nyinstallation av WordPress (ofta tillsammans med wp core download och wp core install). Exempel:
  • wp config create –dbname=wpdb –dbuser=root –dbpass=hemmelig –locale=sv_SE
  • Detta skapar en wp-config.php i nuvarande katalog med databasnamn ”wpdb”, db-användare ”root”, lösen ”hemmelig” och inställningar för svenska (sv_SE). WP-CLI sätter förvalda autentiseringsnycklar/salts åt dig, så du får en säker config genererad. Om filen redan finns kan kommandot vägra skriva över utan –force. Du kan även ange extra parametrar som table prefix (–dbprefix=wp_) eller använda –skip-salts om du inte vill generera nya salts (inte rekommenderat).
  • Lista konfig-inställningar: wp config list – listar alla konstanter och variabler definierade i wp-config.php. Du ser namn och värde (om det är en konstant markeras det). Bra för att snabbt kolla t.ex. vilket DB_NAME eller WP_DEBUG som är satt utan att öppna filen.
  • Sätta en konfiguration: wp config set <NAMN> <värde> [–raw] – sätter en konstant eller PHP-variabel i wp-config.php. T.ex. för att aktivera debug mode:
    wp config set WP_DEBUG true –raw
  • Detta lägger till define(’WP_DEBUG’, true); i wp-config.php eller ändrar befintlig definition. –raw flaggan betyder att värdet ska skrivas bokstavligen (utan citattecken) – använd detta för booleans, siffror eller NULL. Utan –raw tolkas värdet som en sträng och omges av ’…’. Du kan även sätta värden som inte är definierade än. Andra exempel:
  • wp config set WP_POST_REVISIONS 5 –raw # Max 5 revisioner
    wp config set BLOGPUBLIC false –raw # Hindra sökmotorindexering
    wp config set WP_HOME ’https://example.com’
    wp config set WP_SITEURL ’https://example.com’
  • De sista två exemplen skulle uppdatera sajtens hem- och site-URL (motsvarande om du har flyttat WordPress, men oftast är search-replace bättre för domänändring).
  • Ta bort en konfiguration: wp config delete <NAMN> – tar bort en definition av en konstant eller variabel i wp-config.php[68]. Användbart om du vill rensa bort en inställning (t.ex. återgå till default). Exempel: wp config delete WP_CACHE tar bort WP_CACHE konstanten om den fanns (som annars aktiverar cache).
  • Uppdatera unika nycklar och salts: wp config shuffle-salts – genererar nya unika autentiseringsnycklar och salt-värden och ersätter de befintliga i wp-config.php[69]. Att byta ut salts loggar ut alla användare (vilket kan vara bra efter ett intrång). Kör helt enkelt:
  • wp config shuffle-salts
  • WP-CLI uppdaterar alla AUTH_KEY, SECURE_AUTH_KEY, LOGGED_IN_KEY, etc med nya slumpvärden. Detta kommando bör köras i webbplatsens rot, och kräver att en wp-config.php med de gamla nycklarna finns.
  • Redigera wp-config via editor: wp config edit – öppnar wp-config.php i systemets editor ($EDITOR variabel)[67]. Detta är en bekvämlighetsfunktion om du behöver göra manuella ändringar; det är likvärdigt med att öppna filen i vim/nano. Spara och stäng för att verkställa ändringarna.

Tips: wp option-kommandon låter dig hantera inställningar som lagras i databasen (wp_options-tabellen) för en sajt, t.ex. wp option get siteurl eller wp option update blogname ”Ny Titel”. Förväxla inte dessa med konfig-konstanter ovan. Konstanter i wp-config styr global funktionalitet (cache, debug, minne, salts, etc) innan WordPress initieras, medan wp option påverkar inställningar som annars setts i wp-admin under Inställningar.

Skapande och uppdatering av inlägg och sidor

WP-CLI kan skapa, lista, redigera och ta bort inlägg av olika typer (blogginlägg, sidor, custom post types). Det huvudsakliga kommandot är wp post:

  • Skapa ett nytt inlägg:
  • wp post create –post_type=post –post_title=”Min rubrik” –post_content=”Innehåll…” –post_status=publish
  • Detta skapar ett nytt blogginlägg med angiven titel, innehåll och publicerar det direkt (–post_status=publish). Utelämnar du –post_status blir standard draft (utkast). Du kan ange valfritt fält, som –post_author=<user> (annars blir admin/1 författare), –post_date=”<YYYY-MM-DD HH:MM:SS>” för publiceringsdatum osv. Exempel:
  • wp post create –post_title=”Hej världen” –post_content=”Detta är mitt inlägg.” –post_status=draft
  • ger ett nytt inlägg som utkast. Kommandot returnerar t.ex. “Success: Created post 123.”, där 123 är det nya inläggets ID.
  • Skapa en sida: I WordPress är sidor en post typ (page). Använd –post_type=page för att skapa en sida i stället för ett blogginlägg. Exempel:
  • wp post create –post_type=page –post_title=”Om Oss” –post_content=”Här är info om oss…” –post_status=publish
  • Detta skapar en sida med titel ”Om Oss” och publicerar den. Utdata från WP-CLI indikerar postens ID, t.ex. “Success: Created post 157.” (även sidor rapporteras som ”post” internt, då allt är posts med olika typer).
  • Lista inlägg/sidor: wp post list – listar inlägg. Som standard listas de 10 senaste inläggen med kolumner (ID, post_type, post_status, post_title, etc). Använd flaggor för att anpassa:
  • –post_type=<typ> för att välja typ (t.ex. post, page eller en egen CPT).
  • –posts_per_page=20 för att lista fler än standard 10.
  • –format=<format> för att ändra utdataformat (t.ex. csv, json, table (default), ids endast ID:n etc).
    Exempel: wp post list –post_type=page –fields=ID,post_title,post_status listar alla sidor med bara ID, titel och status. Du kan kombinera med grep eller –format=json för skript. För att t.ex. få alla publicerade inläggs ID: wp post list –post_type=post –post_status=publish –format=ids.
  • Uppdatera ett inlägg/sida: wp post update <post-id> [–post_title=”Ny titel”] [–post_status=<status>] [–post_content=”…”] – ändrar fälten för ett befintligt inlägg. Du anger inläggets ID eller unika slug. Exempel:
  • wp post update 123 –post_title=”Uppdaterad rubrik” –post_status=publish
  • uppdaterar inlägget med ID 123, sätter ny titel och ändrar status till publikt (om det t.ex. var ett utkast tidigare). Om du bara vill ändra status kan du köra wp post update <id> –post_status=draft (för att avpublicera t.ex.). Kommandot ger “Success: Updated post 123.” om det gick bra. Du kan på liknande sätt ändra andra fält, t.ex. –post_author=<user> eller anpassade fält med –meta_input='{”nyckel”:”värde”}’ JSON-format.
  • Radera ett inlägg/sida: wp post delete <post-id> [–force] – tar bort inlägget med angivet ID. Som standard flyttas inlägg till papperskorgen (Trash) om force ej anges, motsvarande att “skräpa” inlägget via admin[71]. Med flaggan –force tas det bort permanent direkt (bypassar papperskorgen). Exempel:


  • wp post delete 157
  • ger “Success: Trashed post 157.” och inlägget hamnar i Trash. wp post delete 157 –force skulle ge “Success: Deleted post 157.” och inlägget raderas helt. Du kan ta bort flera på en gång genom att ange flera ID:n separerade med mellanslag, eller ange $(wp post list … –format=ids) för att radera batchvis (kraftfullt, men använd med försiktighet!).
  • Skapa inlägg från fil eller stdin: Avancerat: wp post generate kan generera många inlägg för testsyften (finns i wp-cli exempelpaket), och wp post create kan läsa från en fil: t.ex. wp post create newpost.txt –post_title=”Titel” om newpost.txt innehåller innehåll. Dessa används mer sällan men är bra att känna till.
  • Andra post-verktyg: WP-CLI har kommandon för andra post-relaterade objekt:
  • wp menu – hantera navigationsmenyer (skapa menyer, menu items etc).
  • wp comment – hantera kommentarer (listar, godkänn/ta bort kommentarer).
  • wp term – hantera kategorier, taggar och andra taxonomier (skapa/ta bort termer).
  • wp media – importera eller regenerera mediefiler (t.ex. wp media import <fil> kopplar en fil i uppladdningskatalogen till biblioteket, wp media regenerate skapar om miniatyrbilder.)
  • wp post meta – hantera custom fields (post meta) för inlägg.

Dessa sträcker sig utanför just inlägg/sidor men är del av innehållshanteringen man kan script på liknande sätt. Se wp help <kommando> för mer info om respektive.

Verktyg för felsökning och underhåll (Webbplats-hälsa, cron, cache m.m.)

WP-CLI erbjuder också hjälp för att felsöka problem, kontrollera webbplatsens integritet och utföra underhåll. Här är några användbara verktyg och kommandon:

Kontroll av WordPress-integritet:
Verifiera kärnfiler: wp core verify-checksums – kontrollerar att alla WordPress core-filer stämmer överens med originalen från WordPress.org[73]. Om någon fil är ändrad eller saknas får du en varning. T.ex. kan output visa om du har oönskade filer (som kan indikera malware) eller om någon råkat ändra en kärnfil. Vid korrekt core får du “Success: WordPress installation verifies against checksums.”. Detta motsvarar “Verifying WordPress files” i Site Health.
Plugin/tema-kontroll: På motsvarande sätt kan du installera WP-CLI-paket för att verifiera plugins/teman (t.ex. wp plugin verify-checksums för plugins från .org). Dessa kontrollerar filer mot versionsarkiven – användbart vid felsökning av hack.

Debug-läge och fellogg:
Aktivera WP_DEBUG: Som nämnts i config-delen, kan du sätta WP_DEBUG och WP_DEBUG_LOG till true via wp config set för att börja logga PHP-fel till wp-content/debug.log. Du kan även köra med –debug flagga på WP-CLI-kommandon för att se mer detaljerad körinformation.
WP-CLI shell: Kör wp shell för att få en interaktiv PHP-console med WordPress kontext. Här kan du skriva godtycklig PHP-kod med WordPress laddat – bra för att testa funktioner eller felsöka direkt i terminalen. Skriv t.ex. ?> get_option(’siteurl’); i shellet för att se sajtens URL-inställning. Avsluta med Ctrl+D.
Evalueringskommando: wp eval ’<kod>’ låter dig köra en liten bit PHP-kod i WordPress. T.ex. wp eval ’var_dump(get_theme_mod(”home_text”));’ för att skriva ut värdet av en theme_mod.

Cron-jobb (WP-Cron) hantering:
WordPress Cron (WP-Cron) hanterar schemalagda händelser (som publicera planerade inlägg, köra backup-pluginer etc). WP-CLI ger insyn och kontroll:
– wp cron event list – listar alla schemalagda cron-händelser i WordPress, med nästa körningstid, intervall, hook-namn och args. Detta motsvarar att installera ett plugin som WP Crontrol och titta i admin, men nu direkt i terminalen. Du kan t.ex. snabbt se om någon cron är overdue (förfallen).
– wp cron event run –due-now – triggar omedelbart alla förfallna cron-händelser[76]. Om din wp-cron av någon anledning inte körts (t.ex. på grund av låg trafik eller tidigare fel) kan detta kommandot tvångsköra allt som är due.
– wp cron event run <hook> – kör en specifik cron-händelse (oavsett om den är scheduled för framtiden) manuellt[75]. Ersätt <hook> med t.ex. publish_future_post för att tvinga publicera planerade inlägg, eller valfri custom hook.
– wp cron event schedule <hook> [<tid>] [<intervall>] – schemalägg en ny cron-händelse på given hook. T.ex. wp cron event schedule my_custom_hook ’+5 minutes’ skulle lägga till en engångshändelse på my_custom_hook om 5 minuter. Och wp cron event schedule my_custom_hook now daily skulle lägga till en återkommande daglig händelse som startar nu. (Notera: att skapa en återkommande cron som kör kod kräver att det finns en hook registrerad i temat/pluginkoden som lyssnar på my_custom_hook – WP-CLI kan schemalägga men inte skapa själva hook-funktionen.)
– wp cron event delete <hook> – tar bort alla framtida händelser med angiven hook-namn. Bra om du vill avbryta en schemalagd uppgift.
– wp cron schedule list – listar de intervall som är definierade (hourly, twicedaily, daily plus eventuella custom).
Tips: I produktionsmiljö kan det vara bättre att inaktivera WP-Cron och istället köra ett äkta system-cronjob. Du kan då ställa DISABLE_WP_CRON till true i wp-config och sedan låta serverns crontab köra wp cron event run –due-now var 5:e minut. Detta ger mer pålitlig körning av schemalagda händelser för sajter med ojämn trafik.

Cache och transients:
Rensa objektcache: wp cache flush – tömmer WordPress objektcache[56]. Om du använder en persistent cache backend (Redis/Memcached) via någon drop-in eller cache-plugin, töms cachen. Detta kommando är användbart efter att man gjort stora ändringar (t.ex. search-replace) eller om man misstänker att cachen innehåller inaktuella data. (Observera att detta inte rensar sid-cache i t.ex. WP Super Cache eller liknande – dessa har egna kommandon/plugin-kommandon. Det här avser WordPress inbyggda cache-system för objekt.)
Exempel:

wp cache flush

ger “Success: The cache was flushed.” om en cache fanns och nu är tömd. Det skadar aldrig att flush:a cachen, värsta fallet var den tom redan.

  • Transients: WordPress transients är tillfälliga cachelagrade värden i databasen. För att städa upp dem finns wp transient delete <nyckel> eller wp transient delete –all för att rensa ut alla transients. Exempel:
    wp transient delete –all
  • tar bort allt i options-tabellen som är transients (nyttigt om du vill “fabriksnollställa” cachade API-svar etc). Du kan också rensa expirerade transients med wp transient delete-expired.
  • Rewrite-regler: Efter ändringar i permalänkar eller custom post types kan du behöva flush:a rewrite rules. Använd wp rewrite flush (lägg till –hard om du vill ta bort .htaccess-regler också och generera om). Detta motsvarar ”Spara” permalänk-inställningar i admin. WP-CLI gör det tyst utan output (så du kan script-runna det efter t.ex. aktivering av ett CPT-plugin).
  • Site Health infos: WordPress 5.2+ har ”Site Health”-funktion med flera kontroller. Det finns inget direkt wp site health-kommando, men många av kontrollerna kan du göra via WP-CLI själv (t.ex. checksums, plugin-uppdateringar, PHP-version etc som redan nämnts). Det finns ett inofficiellt WP-CLI paket wp-cli/doctor (wp doctor) som samlar hälsokontroller[80]. Med det kan du köra wp doctor check för en serie tester (t.ex. versioner, inställningar, filbehörigheter m.m.). För att använda det: wp package install wp-cli/doctor-command och sedan wp doctor check. Detta är avancerat, men värt att veta om för omfattande hälsogenomgång via CLI.

Övriga underhållstips:
Verktyg för databaskontroll: wp doctor har checks för t.ex. stora alternativ (optioner som autoloadar mycket data), onödiga cron events etc.
Teman/Plugins konfliktfelsökning: Använd wp plugin deactivate –all och aktivera en och en via CLI för att hitta konflikt, eller wp theme activate twenty<year> för att snabbt byta till standardtema.
Checksum för plugins/teman: wp plugin verify-checksums <slug> kollar pluginets filer mot WordPress.org (bra om du misstänker hackat plugin). Samma med wp theme verify-checksums.

Sammanfattningsvis kan många admin- och felsökningsåtgärder göras direkt i terminalen, vilket sparar tid och möjliggör automation.

Tips för automation (cronjobs, skript)

En av de största fördelarna med WP-CLI är möjligheten att automatisera uppgifter. Här är några tips för att integrera WP-CLI i skript och schemalagda jobb:

  • Köra WP-CLI i cron (schemaläggning): Om du vill att en WP-CLI-kommando ska köras automatiskt (t.ex. varje natt) kan du använda serverns crontab. Viktigt: Cron-jobb körs ofta i en begränsad miljö, kanske utan din vanliga PATH eller med annan PHP-version. För att vara säker, använd fullständiga sökvägar. T.ex.:
  • 0 3 * * * /usr/bin/php /usr/local/bin/wp plugin update –all –allow-root –quiet –path=/var/www/mysite
  • Detta exempel skulle kl 03:00 dagligen köra WP-CLI och uppdatera alla plugins på en specifik site. Här använder vi full path till php och wp samt anger –path till WP-installationen. Vi lägger också till –quiet för att undvika onödig output och –allow-root ifall cron körs som root (ej nödvändigt om du kör som användare)[81].

Alternativt kan du i cron först cd till WP-mappen:

0 3 * * * cd /var/www/mysite && wp plugin update –all –quiet

(förutsatt att wp ligger i PATH för cron, annars ange full path). Oderland rekommenderar explicit att ange både php och wp vägar i cron i sin miljö[81], så anpassa efter din server.

  • Skript med flera kommandon: Du kan kedja WP-CLI kommandon med && i shell, eller skriva Bash/Powershell-skript som kör en sekvens. Exempel på enkelt bash-skript för backup (Linux/macOS):
  • #!/bin/bash
    wp db export /backup/db-$(date +%F).sql –quiet
    tar -czf /backup/wpfiles-$(date +%F).tar.gz wp-content/ –exclude=’cache’
  • Detta skript skulle dumpa DB och packa wp-content varje gång det körs. Lägg det i cron för återkommande backups. (Kom ihåg att ha skrivrättigheter för backupkatalogen och justera vägar.)
  • Miljövariabler och konfiguration: Du kan skapa en global eller projekt-specifik config-fil för WP-CLI (~/.wp-cli/config.yml globalt eller wp-cli.local.yml i projektmapp). Där kan du sätta standardflaggor, alias för sajter, default PATH mm. T.ex.:
  • path: /var/www/mysite
    color: false
  • i en lokal yml så slipper du ange –path varje gång för just den sajten. Du kan även definiera alias för olika installationer (så man kan köra wp @production plugin update –all för att rikta till en viss server via ssh, etc). Se WP-CLI docs om Aliases för avancerad orkestrering.
  • Interaktivt vs icke-interaktivt: I skript och cron vill du undvika väntan på användarinput. Använd flaggor som –yes för att automatisk bekräfta frågor (t.ex. vid wp db drop eller wp plugin delete som normalt frågar). Använd –quiet för att undertrycka framgångsmeddelanden. Fånga fel (exit codes) i skript för att ev. skicka larm. Alla WP-CLI-kommandon returnerar exit code 0 vid success, eller 1 vid fel (samt 0/1 per del om du kör flera med && eller || logik).
  • WP-CLI som del av deploy/CI: Du kan integrera WP-CLI-kommandon i deployscripts eller CI-pipelines. Exempel: Efter att dra en ny version av koden, kör wp core update-db –quiet för att applicera eventuella databasuppdateringar. Eller kör testkommandon som wp core verify-checksums för att se att inga oväntade filändringar skett efter deploy. I ett skript kan du kombinera med systemkommandon, t.ex. skicka e-post/Slack om wp plugin update uppdaterade något.
  • Parallelisering: WP-CLI körs normalt synkront, men du kan köra flera instanser parallellt om du t.ex. vill göra saker snabbare över flera sajter. Var försiktig med databastunga operationer parallellt. WP-CLI har inga inbyggda background-job hanterare, men man kan använda & i bash eller job control för att köra i bakgrunden.
  • Logging: Du kan öka loggning med –debug eller –verbose (vissa kommandon). För skript, fånga utdata och fel till loggfiler: t.ex. wp … >> /var/log/wpcli.log 2>&1 i cron för att spara all output (inklusive ev. fel) till en loggfil för granskning.
  • Säkerhet: Eftersom WP-CLI ger kraftfull åtkomst till din site, var försiktig med att låta skript köra som root. Om möjligt, kör cronjobs som samma användare som äger WP-filerna. Se också till att inte exponerar känsliga creds; lagra inte klartextlösenord i skript (använd env-variabler eller wp-cli.yml med vars).
  • Aliasexempel för flera sajter: I ~/.wp-cli/config.yml kan du definiera:
  • @prod:
    ssh: [email protected]:/home/user/htdocs
    @stage:
    ssh: [email protected]:/home/user/htdocs
  • Då kan du köra wp @prod plugin update –all från din lokala maskin så kopplar WP-CLI via SSH till servern och kör där[13]. Väldigt användbart för central hantering av många WP-installationer.

Kort sagt, WP-CLI är skriptvänligt. Genom att kombinera dess kommandon med vanliga shell-skript eller cron kan du automatisera rutinuppgifter som uppdateringar, backup, städning m.m. Detta minimerar manuellt arbete och risken för misstag, samtidigt som det ger konsekventa resultat över tid. Utforska WP-CLI dokumentationen för ännu fler möjligheter och kom ihåg att alltid testa skript på en staging miljö innan du kör dem skarpt.