wp cli lathund: Skillnad mellan sidversioner

Från Wiki.linux.se
Hoppa till navigering Hoppa till sök
Ingen redigeringssammanfattning
(Tömde sidan)
Märke: Rensning
 
(En mellanliggande sidversion av samma användare visas inte)
Rad 1: Rad 1:
= Lathund: WP-CLI (WordPress Command Line Interface) =


WP-CLI är WordPress kommandoradsverktyg som låter dig hantera WordPress-installationer via terminalen/SSH istället för via webbgränssnittet. Med WP-CLI kan du installera, uppdatera och administrera WordPress-kärna, tillägg, teman, användare, databaser m.m.
Denna lathund riktar sig till tekniska användare (utvecklare/systemadministratörer) och täcker installation samt de vanligaste kommandona med exempel och förklaringar.
== Installation av WP-CLI ==
=== Krav ===
* WP-CLI kräver PHP (vanligen PHP 7.4+ eller nyare) i systemets PATH samt åtkomst till kommandoraden.
* På Linux/macOS betyder detta att PHP är installerat och körbart i terminalen.
* På Windows betyder det att PHP är tillgängligt i PATH.
=== Linux och macOS (Phar-metoden) ===
# Ladda ner WP-CLI (phar-fil). Exempel med cURL:
<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:
<pre>wp plugin install akismet --activate</pre>
=== Globala flaggor (vanliga) ===
* <code>--path=&lt;sökväg&gt;</code> – Kör kommandot mot en WordPress-installation i angiven sökväg.
* <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.
=== 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.
=== 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.
== 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):
<pre>wp core update</pre>
Efter en större versionsuppdatering bör du även köra:
<pre>wp core update-db</pre>
Kontrollera om det finns en uppdatering först:
<pre>wp core check-update</pre>
* Uppdatera alla tillägg:
<pre>wp plugin update --all</pre>
* Uppdatera specifikt plugin:
<pre>wp plugin update &lt;plugin-slug&gt;</pre>
* Uppdatera alla teman:
<pre>wp theme update --all</pre>
* Uppdatera specifikt tema:
<pre>wp theme update &lt;tema-slug&gt;</pre>
* Språkfiler:
<pre>wp language core update</pre>
'''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:
<pre>wp plugin install &lt;plugin-slug&gt;</pre>
Installera och aktivera direkt:
<pre>wp plugin install woocommerce --activate</pre>
* Aktivera ett plugin:
<pre>wp plugin activate &lt;plugin-slug&gt;</pre>
* Inaktivera ett plugin:
<pre>wp plugin deactivate &lt;plugin-slug&gt;</pre>
Inaktivera alla (felsökning):
<pre>wp plugin deactivate --all</pre>
* Uppdatera plugin:
<pre>wp plugin update &lt;plugin-slug&gt;</pre>
Uppdatera alla:
<pre>wp plugin update --all</pre>
* Ta bort (radera) ett plugin:
<pre>wp plugin delete &lt;plugin-slug&gt;</pre>
Ta bort alla inaktiva:
<pre>wp plugin delete --inactive</pre>
* Lista plugins:
<pre>wp plugin list</pre>
Filtrera:
* Endast aktiva: <code>--status=active</code>
* Endast de med uppdateringar: <code>--update=available</code>
== Temahantering ==
* Installera ett tema:
<pre>wp theme install &lt;tema-slug&gt;</pre>
Installera och aktivera direkt:
<pre>wp theme install twentytwentythree --activate</pre>
* Aktivera ett tema:
<pre>wp theme activate &lt;tema-slug&gt;</pre>
* Uppdatera teman:
<pre>wp theme update &lt;tema-slug&gt;</pre>
Uppdatera alla:
<pre>wp theme update --all</pre>
* Ta bort ett tema:
<pre>wp theme delete &lt;tema-slug&gt;</pre>
* Lista teman:
<pre>wp theme list</pre>
Filtrera:
* Inaktiva: <code>--status=inactive</code>
* Med uppdateringar: <code>--update=available</code>
== 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>
=== Roller (wp role) ===
* 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>
== Databashantering (export/import, sök-ersätt, optimering) ==
Alla <code>wp db</code>-kommandon använder uppgifterna i <code>wp-config.php</code>.
=== Exportera databasen (backup) ===
<pre>wp db export [filnamn.sql]</pre>
Exempel:
<pre>wp db export backup.sql</pre>
=== Importera databasen ===
<pre>wp db import &lt;filnamn.sql&gt;</pre>
Exempel:
<pre>wp db import backup.sql</pre>
'''Varning:''' Import skriver över befintligt databasinnehåll.
=== Sök och ersätt ===
<pre>wp search-replace &lt;söksträng&gt; &lt;ersättningssträng&gt; [--dry-run]</pre>
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>
När du kontrollerat utfallet, kör utan <code>--dry-run</code>.
=== Optimera databasen ===
<pre>wp db optimize</pre>
=== Reparera databasen ===
<pre>wp db repair</pre>
=== Ö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>
== 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 ===
<pre>wp db export ~/wp-backup-`date +%F`.sql</pre>
=== Filbackup (wp-content) ===
WP-CLI zippar inte filer, använd systemverktyg (exempel Linux/macOS):
<pre>tar -czf wp-content-backup.tar.gz wp-content/</pre>
Kom ihåg att även spara <code>wp-config.php</code> och eventuella specialfiler.
=== Exportera innehåll (XML/WXR) ===
<pre>wp export --dir=./ --filename_format=backup-%date%.xml</pre>
=== Å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>
Vid flytt till ny miljö kan du behöva köra <code>wp search-replace</code> om domän/sökvägar ändrats.
== Inställningar och konfiguration (wp config) ==
=== Skapa en ny wp-config.php ===
<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>
Exempel:
<pre>wp config create --dbname=wpdb --dbuser=root --dbpass=hemmelig --locale=sv_SE</pre>
=== Lista konfig-inställningar ===
<pre>wp config list</pre>
=== Sätta en konfiguration ===
<pre>wp config set &lt;NAMN&gt; &lt;värde&gt; [--raw]</pre>
Exempel (aktivera debug):
<pre>wp config set WP_DEBUG true --raw</pre>
Fler exempel:
<pre>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'</pre>
=== Ta bort en konfiguration ===
<pre>wp config delete &lt;NAMN&gt;</pre>
=== Uppdatera salts ===
<pre>wp config shuffle-salts</pre>
=== Redigera wp-config i editor ===
<pre>wp config edit</pre>
'''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>.
== Skapande och uppdatering av inlägg och sidor ==
=== Skapa ett nytt inlägg ===
<pre>wp post create --post_type=post --post_title="Min rubrik" --post_content="Innehåll..." --post_status=publish</pre>
Exempel (utkast):
<pre>wp post create --post_title="Hej världen" --post_content="Detta är mitt inlägg." --post_status=draft</pre>
=== 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>
=== Radera ett inlägg/sida ===
* Flytta till papperskorg (standard):
<pre>wp post delete 157</pre>
* Radera permanent:
<pre>wp post delete 157 --force</pre>
=== Andra innehållsverktyg (översikt) ===
* <code>wp menu</code> – navigationsmenyer
* <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)
== Verktyg för felsökning och underhåll ==
=== Kontroll av WordPress-integritet ===
* Verifiera kärnfiler:
<pre>wp core verify-checksums</pre>
=== Debug-läge och utvärdering ===
* Interaktiv WP-CLI shell:
<pre>wp shell</pre>
* Köra PHP-kod i WordPress-kontext:
<pre>wp eval '&lt;kod&gt;'</pre>
=== Cron-jobb (WP-Cron) ===
* Lista cron-händelser:
<pre>wp cron event list</pre>
* Kör förfallna händelser:
<pre>wp cron event run --due-now</pre>
* Kör specifik hook:
<pre>wp cron event run &lt;hook&gt;</pre>
* Schemalägg:
<pre>wp cron event schedule &lt;hook&gt; [&lt;tid&gt;] [&lt;intervall&gt;]</pre>
* Ta bort:
<pre>wp cron event delete &lt;hook&gt;</pre>
* Lista intervall:
<pre>wp cron schedule list</pre>
Tips i produktion: Inaktivera WP-Cron och kör istället ett system-cronjobb som triggar:
<pre>wp cron event run --due-now</pre>
=== Cache och transients ===
* Töm objektcache:
<pre>wp cache flush</pre>
* Ta bort alla transients:
<pre>wp transient delete --all</pre>
* Ta bort expirerade transients:
<pre>wp transient delete-expired</pre>
* Flusha rewrite-regler:
<pre>wp rewrite flush</pre>
=== wp doctor (paket) ===
Det finns ett paket som heter <code>wp-cli/doctor-command</code> som kan köra hälsokontroller:
<pre>wp package install wp-cli/doctor-command
wp doctor check</pre>
== Tips för automation (cronjobs, skript) ==
=== Köra WP-CLI i cron ===
Exempel (dagligen kl 03:00, uppdatera alla plugins på en viss site):
<pre>0 3 * * * /usr/bin/php /usr/local/bin/wp plugin update --all --allow-root --quiet --path=/var/www/mysite</pre>
Alternativt:
<pre>0 3 * * * cd /var/www/mysite && wp plugin update --all --quiet</pre>
=== Skript med flera kommandon ===
Exempel (enkel backup-idé):
<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>
=== 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>.
=== 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>)
== 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.

Nuvarande version från 20 december 2025 kl. 08.14