WP-CLI - zarządzanie WordPress z terminala
WP-CLI to oficjalne narzędzie linii poleceń dla WordPress. Pozwala zarządzać stroną bez logowania do panelu - instalacja, aktualizacje, backup, zarządzanie użytkownikami. Must-have dla administratorów i developerów.
Krótka odpowiedź
Instalacja WP-CLI
Na serwerze (SSH):
```bash
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/wp
```
Sprawdzenie:
```bash
wp --info
```
Na większości hostingów:
- WP-CLI jest już zainstalowane
- Wystarczy SSH i komenda `wp`
Lokalna instalacja (Windows/Mac):
- Windows: przez Composer lub WSL
- Mac: `brew install wp-cli`
- LocalWP ma wbudowane WP-CLI
Podstawowe komendy
Core WordPress:
```bash
wp core version # Wersja WP
wp core update # Aktualizacja WP
wp core download # Pobranie WP
wp core install # Instalacja WP
```
Wtyczki:
```bash
wp plugin list # Lista wtyczek
wp plugin install akismet # Instalacja
wp plugin activate akismet # Aktywacja
wp plugin update --all # Aktualizacja wszystkich
wp plugin deactivate akismet # Dezaktywacja
wp plugin delete akismet # Usunięcie
```
Motywy:
```bash
wp theme list
wp theme install flavor
wp theme activate flavor
wp theme update --all
```
Użytkownicy:
```bash
wp user list
wp user create jan [email protected] --role=editor
wp user update 1 --user_pass=nowehaslo
```
Zaawansowane operacje
Baza danych:
```bash
wp db export backup.sql # Export
wp db import backup.sql # Import
wp db optimize # Optymalizacja
wp db query "SELECT..." # Zapytanie SQL
```
Search-Replace:
```bash
wp search-replace 'stara.pl' 'nowa.pl' --all-tables
wp search-replace 'http://' 'https://' --all-tables
```
Posty i treści:
```bash
wp post list --post_type=post
wp post create --post_title="Nowy post" --post_status=publish
wp post delete 123 --force
wp post meta update 123 _thumbnail_id 456
```
Cache:
```bash
wp cache flush # Flush object cache
wp transient delete --all # Usuń transients
wp rewrite flush # Odśwież permalinki
```
Automatyzacja i skrypty
Skrypt aktualizacji:
```bash
#!/bin/bash
cd /var/www/html
wp core update
wp plugin update --all
wp theme update --all
wp cache flush
echo "Aktualizacja zakończona: $(date)"
```
Backup skrypt:
```bash
#!/bin/bash
DATE=$(date +%Y%m%d)
wp db export /backups/db-$DATE.sql
tar -czf /backups/files-$DATE.tar.gz wp-content/
```
Cron + WP-CLI:
```
0 3 * * * /usr/local/bin/wp plugin update --all --path=/var/www/html
```
Wskazówki:
- --allow-root gdy uruchamiasz jako root
- --path=/ścieżka gdy nie jesteś w katalogu WP
- --skip-plugins gdy wtyczka powoduje błędy