WP-CLI: zarządzanie WordPressem z linii poleceń
Opublikowano: 30 marca 2026 · Autor: Marcin Szewczyk-Wilgan
Panel administracyjny WordPressa działa dobrze, dopóki zarządzasz jedną stroną. Przy kilku witrynach, środowiskach staging, regularnych aktualizacjach i zadaniach cron – klikanie w interfejsie staje się wąskim gardłem. WP-CLI to oficjalne narzędzie wiersza poleceń do zarządzania WordPressem. Pozwala wykonywać z terminala wszystko to, co robisz w panelu – i znacznie więcej: masowe aktualizacje wtyczek, eksport i import bazy danych, zarządzanie użytkownikami, czyszczenie transientów, zarządzanie cronem, search-replace po migracji i automatyzację powtarzalnych zadań w skryptach bash. Jeśli szukasz komend niższego poziomu – grep, find, sed, awk – zajrzyj do artykułu WordPress w terminalu serwera. W tym artykule znajdziesz praktyczne komendy WP-CLI pogrupowane tematycznie – od instalacji i konfiguracji, przez codzienne utrzymanie, po zaawansowane operacje na bazie danych i automatyzację.
1. Instalacja i konfiguracja WP-CLI
WP-CLI wymaga PHP 5.6+ i dostępu do terminala na serwerze. Większość dobrych hostingów (VPS, dedykowane, jakościowe sharedy) ma WP-CLI preinstalowane. Jeśli nie – instalacja zajmuje minutę. Potrzebujesz pomocy z konfiguracją środowiska? Zajmujemy się administracją serwerów i hostingiem WordPress.
Instalacja WP-CLI:
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
chmod +x wp-cli.phar
sudo mv wp-cli.phar /usr/local/bin/wpSprawdź wersję i środowisko:
wp --version
wp --infoAktualizacja WP-CLI do najnowszej wersji:
wp cli updateAutouzupełnianie komend (bash completion):
wp cli completions --type=bash >> ~/.bashrc
source ~/.bashrcUruchomienie jako inny użytkownik – ważne na serwerach z wieloma witrynami:
sudo -u www-data wp option get siteurl --path=/var/www/html2. Instalacja i zarządzanie WordPressem
WP-CLI pozwala zainstalować WordPressa od zera – pobranie plików, utworzenie wp-config.php, instalacja bazy – bez otwierania przeglądarki. Przydatne przy automatyzacji wdrożeń i provisioningu serwerów.
Pobierz pliki WordPressa:
wp core download --locale=pl_PLUtwórz wp-config.php:
wp config create --dbname=wordpress --dbuser=root --dbpass=haslo --dbhost=localhost --dbprefix=wp_Zainstaluj WordPressa – utwórz bazę i konto admina:
wp core install --url="https://domena.pl" --title="Moja strona" --admin_user=admin --admin_email=admin@domena.pl --admin_password=silnehasloSprawdź aktualną wersję WordPressa:
wp core versionZaktualizuj WordPressa do najnowszej wersji:
wp core update
wp core update-dbPrzełącz tryb debug:
wp config set WP_DEBUG true --raw
wp config set WP_DEBUG_LOG true --rawWyłącz tryb debug po diagnostyce:
wp config set WP_DEBUG false --raw3. Wtyczki i motywy
Zarządzanie wtyczkami i motywami z WP-CLI to oczywista przewaga nad panelem – szczególnie przy masowych aktualizacjach, audytach i skryptach automatyzujących utrzymanie wielu witryn. Kryteria wyboru motywu WordPress omawiamy w osobnym artykule.
Lista zainstalowanych wtyczek:
wp plugin listLista wtyczek wymagających aktualizacji:
wp plugin list --update=availableZaktualizuj wszystkie wtyczki:
wp plugin update --allZainstaluj i aktywuj wtyczkę:
wp plugin install wordfence --activateDezaktywuj wtyczkę – np. po błędzie:
wp plugin deactivate wordfenceUsuń nieaktywne wtyczki:
wp plugin delete $(wp plugin list --status=inactive --field=name)Lista motywów:
wp theme listAktywuj motyw:
wp theme activate flavorZaktualizuj wszystkie motywy:
wp theme update --all4. Baza danych
Baza danych to serce WordPressa. WP-CLI daje narzędzia do eksportu, importu, optymalizacji, czyszczenia i operacji search-replace – tej ostatniej nie da się bezpiecznie wykonać innymi narzędziami, bo WP-CLI poprawnie obsługuje serializowane dane PHP. Więcej o administracji MySQL i PostgreSQL na stronach usług.
Eksport bazy danych (dump SQL):
wp db export backup.sqlImport bazy danych:
wp db import backup.sqlOptymalizuj tabele – odpowiednik OPTIMIZE TABLE:
wp db optimizeNapraw uszkodzone tabele:
wp db repairSearch-replace po migracji – bezpiecznie obsługuje serializowane dane:
wp search-replace 'https://stara-domena.pl' 'https://nowa-domena.pl' --all-tables --dry-runUsuń --dry-run po weryfikacji, żeby wykonać faktyczną zamianę.
Search-replace z raportem zmian per tabela:
wp search-replace 'stara-domena.pl' 'nowa-domena.pl' --all-tables --report-changed-onlyWykonaj zapytanie SQL bezpośrednio:
wp db query "SELECT COUNT(*) FROM wp_posts WHERE post_type='revision'"Usuń rewizje wpisów – oszczędność miejsca:
wp post delete $(wp post list --post_type=revision --format=ids) --forceUsuń wygasłe transienty:
wp transient delete --expiredUsuń WSZYSTKIE transienty:
wp transient delete --allPolicz rekordy autoload w wp_options:
wp db query "SELECT COUNT(*) FROM wp_options WHERE autoload='yes'"Rozmiar autoload – częsta przyczyna wolnego TTFB:
wp db query "SELECT SUM(LENGTH(option_value)) as autoload_size FROM wp_options WHERE autoload='yes'"5. Użytkownicy i uprawnienia
Zarządzanie użytkownikami z WP-CLI jest szybsze niż przez panel – szczególnie przy masowych operacjach, audytach uprawnień i resetowaniu haseł po incydentach bezpieczeństwa.
Lista użytkowników:
wp user listUtwórz nowego użytkownika:
wp user create jan jan@domena.pl --role=editor --display_name="Jan Kowalski"Zmień hasło użytkownika:
wp user update admin --user_pass=nowesilnehasloZmień rolę użytkownika:
wp user set-role jan administratorUsuń użytkownika i przypisz jego treści innemu:
wp user delete jan --reassign=1Lista administratorów – audyt bezpieczeństwa:
wp user list --role=administrator --fields=ID,user_login,user_emailWymuś wylogowanie wszystkich użytkowników – po incydencie bezpieczeństwa:
wp user session destroy --all6. Cron i zaplanowane zadania
WordPress ma własny system cron (wp-cron), który uruchamia zaplanowane zadania przy odwiedzinach strony. Na stronach z małym ruchem zadania mogą się opóźniać, a na stronach z dużym ruchem wp-cron generuje zbędne obciążenie. WP-CLI pozwala zarządzać cronem ręcznie i przenieść go na systemowy crontab.
Lista zaplanowanych zadań cron:
wp cron event listUruchom konkretne zadanie ręcznie:
wp cron event run wp_update_pluginsUruchom wszystkie zaległe zadania:
wp cron event run --due-nowWyłącz wp-cron i przejdź na systemowy crontab:
wp config set DISABLE_WP_CRON true --rawNastępnie dodaj do crontaba serwera:
*/15 * * * * cd /var/www/html && wp cron event run --due-now --quietUsuń osierocone zadanie cron – np. po usunięciu wtyczki:
wp cron event delete nazwa_zadaniaSprawdź, czy wp-cron jest wyłączony:
wp config get DISABLE_WP_CRON7. Treści i multimedia
WP-CLI pozwala zarządzać wpisami, stronami, komentarzami i biblioteką mediów bez otwierania panelu. Przydatne przy masowych operacjach – usuwanie spamu, regeneracja miniatur po zmianie motywu, eksport treści. Potrzebujesz dedykowanego rozwiązania do zarządzania treścią? Chętnie pomożemy.
Lista wpisów:
wp post list --post_type=post --fields=ID,post_title,post_statusLista stron ze statusem draft:
wp post list --post_type=page --post_status=draftUtwórz nowy wpis:
wp post create --post_type=post --post_title="Nowy wpis" --post_status=publishUsuń spam komentarze:
wp comment delete $(wp comment list --status=spam --format=ids) --forcePolicz komentarze per status:
wp comment list --format=count --status=approved
wp comment list --format=count --status=spam
wp comment list --format=count --status=trashRegeneruj miniaturki – po zmianie motywu lub rozmiarów:
wp media regenerate --yesRegeneruj miniaturki tylko dla konkretnego rozmiaru:
wp media regenerate --image_size=thumbnail --yesZaimportuj obrazki z katalogu:
wp media import /sciezka/do/obrazkow/*8. Opcje i konfiguracja
Tabela wp_options przechowuje konfigurację WordPressa, wtyczek i motywu. WP-CLI pozwala odczytywać, modyfikować i usuwać opcje bez logowania do bazy danych.
Sprawdź URL strony:
wp option get siteurl
wp option get homeZmień URL strony – np. po migracji:
wp option update siteurl 'https://nowa-domena.pl'
wp option update home 'https://nowa-domena.pl'Sprawdź aktywny motyw:
wp option get template
wp option get stylesheetWyłącz komentarze globalnie:
wp option update default_comment_status closedSprawdź wartość dowolnej opcji:
wp option get blogdescriptionLista opcji autoload – diagnostyka wolnego TTFB:
wp option list --autoload=on --fields=option_name,option_value --format=table | head -30Usuń osierocone opcje po wtyczce:
wp option delete nazwa_opcji_wtyczki9. Cache i wydajność
WP-CLI daje kontrolę nad object cache, transientami i cache wtyczek bezpośrednio z terminala – bez logowania do panelu. Więcej o strategiach cache w artykule Optymalizacja Core Web Vitals i na stronie usługi optymalizacji WordPress.
Wyczyść object cache:
wp cache flushUsuń wygasłe transienty:
wp transient delete --expiredSprawdź typ object cache – Redis, Memcached, plikowy:
wp cache typeWyczyść cache WP Super Cache:
wp super-cache flushWyczyść cache WP Rocket:
wp rocket clean --confirmUruchom preload cache WP Rocket:
wp rocket preload10. Automatyzacja i skrypty
Prawdziwa siła WP-CLI ujawnia się w skryptach bash. Możesz zautomatyzować pełne utrzymanie witryny – aktualizacje, backup, czyszczenie, monitoring – i uruchamiać to cronem lub ręcznie jedną komendą. Nie chcesz zajmować się tym samodzielnie? W ramach opieki nad WordPress robimy to za Ciebie.
Skrypt: backup + aktualizacja + czyszczenie:
#!/bin/bash
cd /var/www/html
# Backup bazy
wp db export /backup/db-$(date +%Y%m%d).sql
# Aktualizuj core, wtyczki, motywy
wp core update
wp core update-db
wp plugin update --all
wp theme update --all
# Wyczyść
wp transient delete --expired
wp cache flush
echo "Utrzymanie zakończone: $(date)"Zarządzanie wieloma witrynami w pętli:
for site in /var/www/site1 /var/www/site2 /var/www/site3; do
echo "=== $site ==="
wp plugin update --all --path="$site"
wp core update --path="$site"
doneRaport stanu witryny – wersje, wtyczki, aktualizacje:
echo "WordPress: $(wp core version)"
echo "PHP: $(php -v | head -1)"
echo "Wtyczki do aktualizacji:"
wp plugin list --update=available --fields=name,version,update_versionCodzienny cron z backupem i aktualizacjami:
0 3 * * * cd /var/www/html && bash /scripts/wp-maintenance.sh >> /var/log/wp-maintenance.log 2>&1Eksport listy wtyczek do CSV – do dokumentacji:
wp plugin list --format=csv > plugins-$(date +%Y%m%d).csvNajczęściej zadawane pytania
Tak – WP-CLI to oficjalne narzędzie, rozwijane przez społeczność WordPressa i wspierane przez Automattic. Jest standardem w profesjonalnej administracji WordPressem. Jedyne ryzyko wynika z błędów użytkownika – dlatego przy destrukcyjnych operacjach (np. search-replace, usuwanie wpisów) używaj flagi --dry-run przed faktycznym wykonaniem.
Zależy od hostingu. Większość jakościowych hostingów WordPress ma WP-CLI preinstalowane. Na tanich sharedach bywa niedostępne – potrzebujesz dostępu SSH i PHP CLI. Jeśli Twój hosting nie udostępnia WP-CLI, rozważ zmianę na lepszego dostawcę.
WP-CLI search-replace poprawnie obsługuje serializowane dane PHP – aktualizuje zarówno tekst, jak i liczniki długości ciągów w serializacji. Sed tego nie robi i uszkodzi serializowane dane. Do zamiany domen w bazie WordPress zawsze używaj WP-CLI, nie seda.
Użyj flagi --path=/sciezka/do/witryny przy każdej komendzie, np. wp plugin list --path=/var/www/site2. Dla WordPress Multisite dodaj --url=subdomena.domena.pl, żeby wskazać konkretną witrynę w sieci.
WP-CLI nie ma wbudowanego undo. Dlatego przed destrukcyjnymi operacjami zawsze rób backup: wp db export backup.sql przed search-replace, --dry-run przed masowymi zmianami. Przy aktualizacjach – środowisko staging pozwala przetestować zmiany przed produkcją.


