wp cli lathund: Skillnad mellan sidversioner

Från Wiki.linux.se
Hoppa till navigering Hoppa till sök
Ingen redigeringssammanfattning
Ingen redigeringssammanfattning
Rad 1: Rad 1:
= WP-CLI – lathund =
= Lathund: WP-CLI (WordPress Command Line Interface) =


WP-CLI är WordPress officiella kommandoradsverktyg som gör det möjligt att administrera WordPress-installationer via terminal eller SSH istället för via webbgränssnittet. Med WP-CLI kan du hantera WordPress-kärnan, tillägg, teman, användare, databasen, cron-händelser, cache, konfiguration och mycket mer.
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 artikel är avsedd som en komplett och praktisk lathund för tekniskt kunniga användare såsom systemadministratörer och utvecklare.
Denna lathund riktar sig till tekniska användare (utvecklare/systemadministratörer) och täcker installation samt de vanligaste kommandona med exempel och förklaringar.


== Grundprinciper ==
== Installation av WP-CLI ==


* WP-CLI körs normalt från WordPress-roten (katalogen där <code>wp-config.php</code> finns).
=== Krav ===
* Alternativt kan flaggan <code>--path</code> användas för att peka ut rätt installation.
* WP-CLI kräver PHP (vanligen PHP 7.4+ eller nyare) i systemets PATH samt åtkomst till kommandoraden.
* Alla kommandon inleds med <code>wp</code>.
* 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.


<pre>
=== Linux och macOS (Phar-metoden) ===
wp <kommando> <underkommando> [argument] [--flaggor]
 
</pre>
# Ladda ner WP-CLI (phar-fil). Exempel med cURL:
<pre>curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar</pre>
 
# Testa körbarhet (kör med PHP):
<pre>php wp-cli.phar --info</pre>
 
# Gör WP-CLI globalt tillgängligt (gör körbar och flytta till en mapp i PATH, t.ex. /usr/local/bin):
<pre>chmod +x wp-cli.phar
sudo mv wp-cli.phar /usr/local/bin/wp</pre>
 
# Verifiera installationen:
<pre>wp --info</pre>
 
=== Alternativ (Homebrew på macOS) ===
På macOS kan du installera via Homebrew:
 
<pre>brew install wp-cli</pre>
 
=== Windows ===
På Windows kan du använda WP-CLI via PHP i kommandotolken:
 
* Installera PHP: Säkerställ att PHP är installerat och att <code>php</code> finns i PATH (så att du kan köra <code>php -v</code>).
* Ladda ner <code>wp-cli.phar</code>: Hämta från officiell URL och spara t.ex. i <code>C:\wp-cli\wp-cli.phar</code>.
* Skapa en batchfil: I samma katalog (t.ex. <code>C:\wp-cli\</code>) skapa filen <code>wp.bat</code> med följande innehåll:
<pre>@ECHO OFF
php "C:/wp-cli/wp-cli.phar" %*</pre>
 
* Uppdatera PATH: Lägg till <code>C:\wp-cli\</code> i systemets PATH (t.ex. med <code>setx</code>). Starta om terminalen efteråt.
* Testa:
<pre>wp --info</pre>
 
== Uppdatera WP-CLI ==
 
Om du installerat WP-CLI via Phar-metoden kan du uppdatera det med:
 
<pre>wp cli update</pre>
 
Kör med <code>sudo</code> om din <code>wp</code> ligger i en systemmapp som kräver root. Du kan även lägga till <code>--nightly</code> 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 <code>wp-config.php</code> finns). Därefter skriver du kommandon med prefixet <code>wp</code>.
 
Generellt format:
<pre>wp &lt;kommando&gt; &lt;underkommando&gt; [--option1=värde ...]</pre>


Exempel:
Exempel:
<pre>wp plugin install akismet --activate</pre>


<pre>
=== Globala flaggor (vanliga) ===
wp plugin install akismet --activate
* <code>--path=&lt;sökväg&gt;</code> – Kör kommandot mot en WordPress-installation i angiven sökväg.
</pre>
* <code>--url=&lt;URL&gt;</code> – Specificera URL (t.ex. multisite eller om du kör utan att stå i katalogen).
* <code>--user=&lt;användare&gt;</code> – Kör kommandot som en viss WordPress-användare (inlogg, ID eller e-post).
* <code>--allow-root</code> – Inaktiverar varningen som hindrar körning som root (använd försiktigt).
* <code>--quiet</code> – Tyst läge, döljer icke-felmeddelanden (bra för cronjobb).
* <code>--debug</code> – Visar mer felsökningsinformation.
* <code>--prompt</code> – Frågar interaktivt efter värden som inte angivits.


== Installation ==
=== Hjälp ===
* <code>wp help</code> – översikt.
* <code>wp help &lt;kommando&gt;</code> eller <code>wp &lt;kommando&gt; --help</code> – detaljer om ett specifikt kommando.


=== Linux och macOS (phar-metoden) ===
=== Exempel på enkla kommandon ===
* <code>wp core version</code> – Visar din WordPress-version.
* <code>wp core check-update</code> – Kontrollerar om ny WordPress-version finns.
* <code>wp plugin status</code> – Visar vilka plugins som är aktiva/inaktiva och om uppdateringar finns.
* <code>wp theme status</code> – Visar vilka teman som är aktiva och om uppdateringar finns.
* <code>wp help &lt;kommando&gt;</code> – Visar hjälptext för valt kommando.


Ladda ner WP-CLI:
== Uppdateringar av WordPress, teman och tillägg ==


<pre>
Att hålla WordPress-kärnan, samt installerade teman och tillägg, uppdaterade är viktigt för säkerhet och funktion.
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
</pre>


Testa filen:
* Uppdatera WordPress (kärnan):
<pre>wp core update</pre>


<pre>
Efter en större versionsuppdatering bör du även köra:
php wp-cli.phar --info
<pre>wp core update-db</pre>
</pre>


Gör kommandot globalt:
Kontrollera om det finns en uppdatering först:
<pre>wp core check-update</pre>


<pre>
* Uppdatera alla tillägg:
chmod +x wp-cli.phar
<pre>wp plugin update --all</pre>
sudo mv wp-cli.phar /usr/local/bin/wp
</pre>


Verifiera installationen:
* Uppdatera specifikt plugin:
<pre>wp plugin update &lt;plugin-slug&gt;</pre>


<pre>
* Uppdatera alla teman:
wp --info
<pre>wp theme update --all</pre>
</pre>


=== macOS (Homebrew) ===
* Uppdatera specifikt tema:
<pre>wp theme update &lt;tema-slug&gt;</pre>


<pre>
* Språkfiler:
brew install wp-cli
<pre>wp language core update</pre>
wp --info
</pre>


== Globala flaggor ==
'''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.


{| class="wikitable"
== Plugin-hantering (installera, aktivera, uppdatera, ta bort, lista) ==
! Flagga


| ! Beskrivning                                                |
* Installera ett plugin:
| ------------------------------------------------------------- |
<pre>wp plugin install &lt;plugin-slug&gt;</pre>
| <code>--path=/sökväg</code>                                  |
| Kör kommandot mot en specifik WordPress-installation          |
| -                                                            |
| <code>--url=[https://example.com](https://example.com)</code> |
| Krävs ibland i multisite-miljöer                              |
| -                                                            |
| <code>--user=admin</code>                                    |
| Kör kommandot som angiven WordPress-användare                |
| -                                                            |
| <code>--allow-root</code>                                     |
| Tillåt körning som root (bör undvikas)                        |
| -                                                            |
| <code>--quiet</code>                                          |
| Minimal output, lämpligt för cron-jobb                        |
| -                                                            |
| <code>--debug</code>                                          |
| Utförlig felsökningsinformation                              |
| -                                                            |
| <code>--yes</code>                                            |
| Automatisk bekräftelse vid frågor                            |
| }                                                            |


== Uppdateringar ==
Installera och aktivera direkt:
<pre>wp plugin install woocommerce --activate</pre>


=== WordPress-kärnan ===
* Aktivera ett plugin:
<pre>wp plugin activate &lt;plugin-slug&gt;</pre>


Kontrollera om uppdateringar finns:
* Inaktivera ett plugin:
<pre>wp plugin deactivate &lt;plugin-slug&gt;</pre>


<pre>
Inaktivera alla (felsökning):
wp core check-update
<pre>wp plugin deactivate --all</pre>
</pre>


Uppdatera WordPress:
* Uppdatera plugin:
<pre>wp plugin update &lt;plugin-slug&gt;</pre>


<pre>
Uppdatera alla:
wp core update
<pre>wp plugin update --all</pre>
</pre>


Uppdatera databasen efter större versionsbyte:
* Ta bort (radera) ett plugin:
<pre>wp plugin delete &lt;plugin-slug&gt;</pre>


<pre>
Ta bort alla inaktiva:
wp core update-db
<pre>wp plugin delete --inactive</pre>
</pre>


=== Tillägg (plugins) ===
* Lista plugins:
<pre>wp plugin list</pre>


Uppdatera alla tillägg:
Filtrera:
* Endast aktiva: <code>--status=active</code>
* Endast de med uppdateringar: <code>--update=available</code>


<pre>
== Temahantering ==
wp plugin update --all
</pre>


Uppdatera ett specifikt tillägg:
* Installera ett tema:
<pre>wp theme install &lt;tema-slug&gt;</pre>


<pre>
Installera och aktivera direkt:
wp plugin update akismet
<pre>wp theme install twentytwentythree --activate</pre>
</pre>


=== Teman ===
* Aktivera ett tema:
<pre>wp theme activate &lt;tema-slug&gt;</pre>


Uppdatera alla teman:
* Uppdatera teman:
<pre>wp theme update &lt;tema-slug&gt;</pre>


<pre>
Uppdatera alla:
wp theme update --all
<pre>wp theme update --all</pre>
</pre>


== Plugin-hantering ==
* Ta bort ett tema:
<pre>wp theme delete &lt;tema-slug&gt;</pre>


{| class="wikitable"
* Lista teman:
! Kommando
<pre>wp theme list</pre>


| ! Funktion                                      |
Filtrera:
| ------------------------------------------------ |
* Inaktiva: <code>--status=inactive</code>
| <code>wp plugin list</code>                      |
* Med uppdateringar: <code>--update=available</code>
| Lista alla installerade tillägg                  |
| -                                                |
| <code>wp plugin install <slug></code>            |
| Installera tillägg från WordPress.org            |
| -                                                |
| <code>wp plugin install <slug> --activate</code> |
| Installera och aktivera tillägg                  |
| -                                                |
| <code>wp plugin activate <slug></code>          |
| Aktivera ett tillägg                            |
| -                                               |
| <code>wp plugin deactivate <slug></code>        |
| Inaktivera ett tillägg                          |
| -                                               |
| <code>wp plugin deactivate --all</code>         |
| Inaktivera alla tillägg (felsökning)            |
| -                                                |
| <code>wp plugin delete <slug></code>            |
| Ta bort ett tillägg                              |
| }                                                |


== Temahantering ==
== Användarhantering (skapa, ta bort, ändra roller, lista) ==
 
=== Skapa ny användare ===
<pre>wp user create &lt;användarnamn&gt; &lt;email&gt; --role=&lt;roll&gt;</pre>
 
Exempel:
<pre>wp user create johan [email protected] --role=author</pre>
 
=== Lista användare ===
<pre>wp user list</pre>
 
Filtrera på roll:
<pre>wp user list --role=subscriber</pre>
 
Exportera fält:
<pre>wp user list --fields=ID,user_login,role --format=csv</pre>
 
=== Uppdatera användare ===
Byta roll:
<pre>wp user update &lt;användar-id&gt; --role=&lt;ny_roll&gt;</pre>
 
Byta lösenord:
<pre>wp user update &lt;user&gt; --user_pass=&lt;nyttlösenord&gt;</pre>
 
Exempel:
<pre>wp user update 2 --display_name="John Doe" --user_pass="hemligt"</pre>
 
=== Ta bort en användare ===
<pre>wp user delete &lt;user&gt; [--reassign=&lt;annat_user_id&gt;] [--yes]</pre>
 
Exempel (ta bort användare 3, flytta allt innehåll till user 1):
<pre>wp user delete 3 --reassign=1 --yes</pre>


{| class="wikitable"
=== Roller (wp role) ===
! Kommando
* Lista roller: <code>wp role list</code>
* Skapa roll: <code>wp role create</code>
* Ta bort roll: <code>wp role delete</code>
* Återställ standardroller: <code>wp role reset</code>


| ! Funktion                                      |
== Databashantering (export/import, sök-ersätt, optimering) ==
| ----------------------------------------------- |
| <code>wp theme list</code>                      |
| Lista installerade teman                        |
| -                                              |
| <code>wp theme install <slug></code>            |
| Installera tema                                |
| -                                              |
| <code>wp theme install <slug> --activate</code> |
| Installera och aktivera tema                    |
| -                                               |
| <code>wp theme activate <slug></code>          |
| Aktivera tema                                  |
| -                                              |
| <code>wp theme delete <slug></code>            |
| Ta bort tema                                    |
| }                                              |


== Användarhantering ==
Alla <code>wp db</code>-kommandon använder uppgifterna i <code>wp-config.php</code>.


Lista användare:
=== Exportera databasen (backup) ===
<pre>wp db export [filnamn.sql]</pre>


<pre>
Exempel:
wp user list
<pre>wp db export backup.sql</pre>
</pre>


Skapa användare:
=== Importera databasen ===
<pre>wp db import &lt;filnamn.sql&gt;</pre>


<pre>
Exempel:
wp user create johan johan@example.com --role=author
<pre>wp db import backup.sql</pre>
</pre>


Ändra roll:
'''Varning:''' Import skriver över befintligt databasinnehåll.


<pre>
=== Sök och ersätt ===
wp user update 5 --role=editor
<pre>wp search-replace &lt;söksträng&gt; &lt;ersättningssträng&gt; [--dry-run]</pre>
</pre>


Ändra lösenord:
Exempel (kör först med dry-run):
<pre>wp search-replace 'http://gammal-domän.se' 'https://ny-domän.se' --dry-run</pre>


<pre>
När du kontrollerat utfallet, kör utan <code>--dry-run</code>.
wp user update 5 --user_pass="nyttlösen"
</pre>


Ta bort användare och flytta innehåll:
=== Optimera databasen ===
<pre>wp db optimize</pre>


<pre>
=== Reparera databasen ===
wp user delete 5 --reassign=1 --yes
<pre>wp db repair</pre>
</pre>


== Databashantering ==
=== Övriga db-kommandon ===
* Köra SQL: <code>wp db query "&lt;SQL&gt;"</code>
* Storlek: <code>wp db size</code>
* Tabeller: <code>wp db tables</code>
* Kontroll: <code>wp db check</code>
* Prefix: <code>wp db prefix</code>


Exportera databas:
== Säkerhetskopiering och återställning ==


<pre>
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.
wp db export backup.sql
</pre>


Importera databas:
=== Databasbackup ===
<pre>wp db export ~/wp-backup-`date +%F`.sql</pre>


<pre>
=== Filbackup (wp-content) ===
wp db import backup.sql
WP-CLI zippar inte filer, använd systemverktyg (exempel Linux/macOS):
</pre>
<pre>tar -czf wp-content-backup.tar.gz wp-content/</pre>


Optimera databasen:
Kom ihåg att även spara <code>wp-config.php</code> och eventuella specialfiler.


<pre>
=== Exportera innehåll (XML/WXR) ===
wp db optimize
<pre>wp export --dir=./ --filename_format=backup-%date%.xml</pre>
</pre>


Reparera databasen:
=== Återställning (princip) ===
* Databas: <code>wp db import &lt;backup.sql&gt;</code>
* Filer: återställ <code>wp-content</code> (och ev. config)
* XML: importera WXR vid behov:
<pre>wp import &lt;fil&gt;.xml --authors=create</pre>


<pre>
Vid flytt till ny miljö kan du behöva köra <code>wp search-replace</code> om domän/sökvägar ändrats.
wp db repair
</pre>


Sök och ersätt (testkörning):
== Inställningar och konfiguration (wp config) ==


<pre>
=== Skapa en ny wp-config.php ===
wp search-replace 'http://gammal.se' 'https://ny.se' --dry-run
<pre>wp config create --dbname=&lt;db_namn&gt; --dbuser=&lt;db_anv&gt; --dbpass=&lt;db_lösenord&gt; [--dbhost=&lt;host&gt;] [--locale=&lt;språk&gt;]</pre>
</pre>


Utför ändringarna:
Exempel:
<pre>wp config create --dbname=wpdb --dbuser=root --dbpass=hemmelig --locale=sv_SE</pre>


<pre>
=== Lista konfig-inställningar ===
wp search-replace 'http://gammal.se' 'https://ny.se'
<pre>wp config list</pre>
</pre>


== Backup och återställning ==
=== Sätta en konfiguration ===
<pre>wp config set &lt;NAMN&gt; &lt;värde&gt; [--raw]</pre>


Databasbackup:
Exempel (aktivera debug):
<pre>wp config set WP_DEBUG true --raw</pre>


<pre>
Fler exempel:
wp db export ~/backup/db-$(date +%F).sql
<pre>wp config set WP_POST_REVISIONS 5 --raw
</pre>
wp config set BLOGPUBLIC false --raw
wp config set WP_HOME 'https://example.com'
wp config set WP_SITEURL 'https://example.com'</pre>


Filbackup (wp-content):
=== Ta bort en konfiguration ===
<pre>wp config delete &lt;NAMN&gt;</pre>


<pre>
=== Uppdatera salts ===
tar -czf ~/backup/wp-content-$(date +%F).tar.gz wp-content/
<pre>wp config shuffle-salts</pre>
</pre>


== wp-config och inställningar ==
=== Redigera wp-config i editor ===
<pre>wp config edit</pre>


Skapa <code>wp-config.php</code>:
'''Tips:''' <code>wp option</code>-kommandon hanterar inställningar i databasen (t.ex. <code>siteurl</code>), medan <code>wp config</code> hanterar konstanter i <code>wp-config.php</code>.


<pre>
== Skapande och uppdatering av inlägg och sidor ==
wp config create --dbname=wpdb --dbuser=root --dbpass=hemligt --locale=sv_SE
</pre>


Lista konfigurationsvärden:
=== Skapa ett nytt inlägg ===
<pre>wp post create --post_type=post --post_title="Min rubrik" --post_content="Innehåll..." --post_status=publish</pre>


<pre>
Exempel (utkast):
wp config list
<pre>wp post create --post_title="Hej världen" --post_content="Detta är mitt inlägg." --post_status=draft</pre>
</pre>


Aktivera felsökning:
=== Skapa en sida ===
<pre>wp post create --post_type=page --post_title="Om Oss" --post_content="Här är info om oss..." --post_status=publish</pre>
 
=== Lista inlägg/sidor ===
<pre>wp post list</pre>
 
Exempel (lista sidor med utvalda fält):
<pre>wp post list --post_type=page --fields=ID,post_title,post_status</pre>
 
=== Uppdatera ett inlägg/sida ===
<pre>wp post update &lt;post-id&gt; [--post_title="Ny titel"] [--post_status=&lt;status&gt;] [--post_content="..."]</pre>
 
Exempel:
<pre>wp post update 123 --post_title="Uppdaterad rubrik" --post_status=publish</pre>


<pre>
=== Radera ett inlägg/sida ===
wp config set WP_DEBUG true --raw
* Flytta till papperskorg (standard):
</pre>
<pre>wp post delete 157</pre>


Byt salts (loggar ut alla användare):
* Radera permanent:
<pre>wp post delete 157 --force</pre>


<pre>
=== Andra innehållsverktyg (översikt) ===
wp config shuffle-salts
* <code>wp menu</code> – navigationsmenyer
</pre>
* <code>wp comment</code> – kommentarer
* <code>wp term</code> – kategorier/taggar/taxonomier
* <code>wp media</code> – media (t.ex. import/regenerera)
* <code>wp post meta</code> – custom fields (post meta)


== Inlägg och sidor ==
== Verktyg för felsökning och underhåll ==


Skapa inlägg:
=== Kontroll av WordPress-integritet ===
* Verifiera kärnfiler:
<pre>wp core verify-checksums</pre>


<pre>
=== Debug-läge och utvärdering ===
wp post create --post_title="Min rubrik" --post_content="Text" --post_status=publish
* Interaktiv WP-CLI shell:
</pre>
<pre>wp shell</pre>


Skapa sida:
* Köra PHP-kod i WordPress-kontext:
<pre>wp eval '&lt;kod&gt;'</pre>


<pre>
=== Cron-jobb (WP-Cron) ===
wp post create --post_type=page --post_title="Om oss" --post_status=publish
* Lista cron-händelser:
</pre>
<pre>wp cron event list</pre>


Lista innehåll:
* Kör förfallna händelser:
<pre>wp cron event run --due-now</pre>


<pre>
* Kör specifik hook:
wp post list
<pre>wp cron event run &lt;hook&gt;</pre>
</pre>


Ta bort innehåll permanent:
* Schemalägg:
<pre>wp cron event schedule &lt;hook&gt; [&lt;tid&gt;] [&lt;intervall&gt;]</pre>


<pre>
* Ta bort:
wp post delete 123 --force
<pre>wp cron event delete &lt;hook&gt;</pre>
</pre>


== Underhåll och felsökning ==
* Lista intervall:
<pre>wp cron schedule list</pre>


Verifiera WordPress-kärnfiler:
Tips i produktion: Inaktivera WP-Cron och kör istället ett system-cronjobb som triggar:
<pre>wp cron event run --due-now</pre>


<pre>
=== Cache och transients ===
wp core verify-checksums
* Töm objektcache:
</pre>
<pre>wp cache flush</pre>


Rensa object cache:
* Ta bort alla transients:
<pre>wp transient delete --all</pre>


<pre>
* Ta bort expirerade transients:
wp cache flush
<pre>wp transient delete-expired</pre>
</pre>


Rensa alla transients:
* Flusha rewrite-regler:
<pre>wp rewrite flush</pre>


<pre>
=== wp doctor (paket) ===
wp transient delete --all
Det finns ett paket som heter <code>wp-cli/doctor-command</code> som kan köra hälsokontroller:
</pre>


== Cron (WP-Cron) ==
<pre>wp package install wp-cli/doctor-command
wp doctor check</pre>


Lista schemalagda händelser:
== Tips för automation (cronjobs, skript) ==


<pre>
=== Köra WP-CLI i cron ===
wp cron event list
Exempel (dagligen kl 03:00, uppdatera alla plugins på en viss site):
</pre>
<pre>0 3 * * * /usr/bin/php /usr/local/bin/wp plugin update --all --allow-root --quiet --path=/var/www/mysite</pre>


Kör alla förfallna händelser:
Alternativt:
<pre>0 3 * * * cd /var/www/mysite && wp plugin update --all --quiet</pre>


<pre>
=== Skript med flera kommandon ===
wp cron event run --due-now
Exempel (enkel backup-idé):
</pre>
<pre>#!/bin/bash
wp db export /backup/db-$(date +%F).sql --quiet
tar -czf /backup/wpfiles-$(date +%F).tar.gz wp-content/ --exclude='cache'</pre>


== Automation ==
=== Konfigfil för standardflaggor ===
Du kan sätta standardinställningar i <code>~/.wp-cli/config.yml</code> (globalt) eller <code>wp-cli.local.yml</code> (per projekt), t.ex. default <code>path</code>.


Exempel på cron-jobb som uppdaterar alla tillägg varje natt:
=== Icke-interaktiv körning ===
För scripts/cron:
* använd <code>--yes</code> där det behövs
* använd <code>--quiet</code> för mindre output
* logga output till fil vid behov (inkl. fel med <code>2&gt;&amp;1</code>)


<pre>
== Avslut ==
0 3 * * * cd /var/www/site && wp plugin update --all --quiet
</pre>


== Se även ==
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.


* [[WordPress]]
Testa alltid nya skript i en staging-/testmiljö innan du kör dem i produktion.
* [[wp-config.php]]
* [[WP-Cron]]
* [[https://developer.wordpress.org/cli/](https://developer.wordpress.org/cli/) WP-CLI dokumentation]

Versionen från 20 december 2025 kl. 08.12

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.