wp cli lathund

Från Wiki.linux.se
Version från den 20 december 2025 kl. 08.12 av Admin (diskussion | bidrag)
Hoppa till navigering Hoppa till sök

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)

  1. Ladda ner WP-CLI (phar-fil). Exempel med cURL:
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
  1. Testa körbarhet (kör med PHP):
php wp-cli.phar --info
  1. 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
  1. 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 php finns i PATH (så att du kan köra php -v).
  • Ladda ner wp-cli.phar: Hämta från officiell URL och spara t.ex. i C:\wp-cli\wp-cli.phar.
  • Skapa en batchfil: I samma katalog (t.ex. C:\wp-cli\) skapa filen wp.bat med 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. med setx). 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> eller wp <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.

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

  • Installera ett plugin:
wp plugin install <plugin-slug>

Installera och aktivera direkt:

wp plugin install woocommerce --activate
  • Aktivera ett plugin:
wp plugin activate <plugin-slug>
  • Inaktivera ett plugin:
wp plugin deactivate <plugin-slug>

Inaktivera alla (felsökning):

wp plugin deactivate --all
  • Uppdatera plugin:
wp plugin update <plugin-slug>

Uppdatera alla:

wp plugin update --all
  • Ta bort (radera) ett plugin:
wp plugin delete <plugin-slug>

Ta bort alla inaktiva:

wp plugin delete --inactive
  • Lista plugins:
wp plugin list

Filtrera:

  • Endast aktiva: --status=active
  • Endast de med uppdateringar: --update=available

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 – navigationsmenyer
  • wp comment – kommentarer
  • wp term – kategorier/taggar/taxonomier
  • wp 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 --yes där det behövs
  • använd --quiet fö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.