WP-CLI - WordPress Parancssori Eszköz
A WP-CLI a hivatalos parancssori eszköz WordPress kezeléséhez. Lehetővé teszi a WordPress telepítését, frissítését, bővítmények és témák kezelését, adatbázis műveleteket és sok mást - mindezt a böngésző használata nélkül.
Miért WP-CLI?
- Gyors - Sokkal gyorsabb, mint a webes felület
- Automatizálható - Scriptek és CI/CD integráció
- Tömeges műveletek - Több site kezelése egyszerre
- SSH elérés - Távoli szervereken is működik
- Bővíthető - Egyedi parancsok írhatók
Telepítés
Linux/macOS
# Letöltés
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
# Jogosultság
chmod +x wp-cli.phar
# Áthelyezés
sudo mv wp-cli.phar /usr/local/bin/wp
# Ellenőrzés
wp --info
macOS (Homebrew)
brew install wp-cli
Windows
# Scoop-pal
scoop install wp-cli
# Chocolatey-vel
choco install wp-cli
Composer
composer global require wp-cli/wp-cli-bundle
Docker
docker run -it --rm \
-v $(pwd):/var/www/html \
wordpress:cli wp --info
Alapvető parancsok
WordPress telepítés
# WordPress letöltése
wp core download --locale=hu_HU
# wp-config.php létrehozása
wp config create \
--dbname=wordpress \
--dbuser=root \
--dbpass=password \
--dbhost=localhost
# Adatbázis létrehozása
wp db create
# WordPress telepítése
wp core install \
--url="http://localhost" \
--title="My WordPress Site" \
--admin_user=admin \
--admin_password=password \
--admin_email=[email protected]
Verzió információk
# WordPress verzió
wp core version
# WP-CLI verzió
wp cli version
# PHP verzió
wp cli info
Bővítmények kezelése
Listázás
# Összes bővítmény
wp plugin list
# Aktív bővítmények
wp plugin list --status=active
# Frissítendő bővítmények
wp plugin list --update=available
# Táblázat formátum
wp plugin list --format=table
# JSON formátum
wp plugin list --format=json
Telepítés
# Plugin telepítése
wp plugin install akismet
# Telepítés és aktiválás
wp plugin install woocommerce --activate
# Adott verzió telepítése
wp plugin install akismet --version=5.0
# ZIP fájlból
wp plugin install /path/to/plugin.zip
# URL-ből
wp plugin install https://example.com/plugin.zip
Aktiválás és deaktiválás
# Aktiválás
wp plugin activate akismet
# Deaktiválás
wp plugin deactivate akismet
# Összes plugin deaktiválása
wp plugin deactivate --all
Frissítés
# Egy plugin frissítése
wp plugin update akismet
# Összes plugin frissítése
wp plugin update --all
# Dry run (mit frissítene)
wp plugin update --all --dry-run
Törlés
# Plugin törlése
wp plugin delete akismet
# Deaktiválás és törlés
wp plugin deactivate akismet && wp plugin delete akismet
Témák kezelése
# Téma listázás
wp theme list
# Téma telepítése
wp theme install flavor --activate
# Téma frissítése
wp theme update flavor
# Összes téma frissítése
wp theme update --all
# Téma törlése
wp theme delete flavor
# Aktív téma
wp theme status
WordPress core kezelés
# Core frissítése
wp core update
# Adott verzióra frissítés
wp core update --version=6.4.2
# Core újratelepítése
wp core download --force
# Adatbázis frissítése (major update után)
wp core update-db
# Core integritás ellenőrzése
wp core verify-checksums
Felhasználók kezelése
Listázás
# Összes felhasználó
wp user list
# Adminok
wp user list --role=administrator
# JSON formátum
wp user list --format=json
Létrehozás
# Új felhasználó
wp user create john [email protected] --role=author
# Jelszóval
wp user create john [email protected] --role=editor --user_pass=securepass
# Admin létrehozása
wp user create admin [email protected] --role=administrator --user_pass=adminpass
Módosítás
# Jelszó változtatás
wp user update admin --user_pass=newpassword
# Email változtatás
wp user update admin --user_email=[email protected]
# Szerep változtatás
wp user set-role john administrator
Törlés
# Felhasználó törlése (tartalom átadással)
wp user delete john --reassign=1
# Tartalom nélkül törlés
wp user delete john --yes
Adatbázis műveletek
Alapok
# Adatbázis export
wp db export backup.sql
# Adatbázis import
wp db import backup.sql
# SQL lekérdezés
wp db query "SELECT * FROM wp_options LIMIT 10"
# Tábla optimalizálás
wp db optimize
# Tábla javítás
wp db repair
Search-Replace
# URL csere
wp search-replace 'http://old-domain.com' 'https://new-domain.com'
# Dry run
wp search-replace 'http://old-domain.com' 'https://new-domain.com' --dry-run
# Specifikus táblákban
wp search-replace 'old' 'new' wp_posts wp_postmeta
# Regex használata
wp search-replace 'old' 'new' --regex
# Serialized data kezelése
wp search-replace 'old' 'new' --precise
Prefix kezelés
# Prefix megjelenítése
wp db prefix
# Export specifikus táblákkal
wp db export --tables=wp_posts,wp_postmeta
Opciók kezelése
# Opció lekérése
wp option get siteurl
# Opció beállítása
wp option update blogname "My New Site Name"
# JSON opció beállítása
wp option update my_option '{"key":"value"}' --format=json
# Opció törlése
wp option delete my_option
# Összes opció (autoload)
wp option list --autoload=yes
Tartalom kezelés
Bejegyzések
# Post listázás
wp post list
# Post létrehozása
wp post create --post_type=post --post_title="Hello World" --post_status=publish
# Post létrehozása fájlból
wp post create ./post-content.txt --post_title="My Post" --post_status=publish
# Post törlése
wp post delete 123
# Összes vázlat törlése
wp post delete $(wp post list --post_status=draft --format=ids)
# Post meta
wp post meta get 123 _thumbnail_id
wp post meta update 123 custom_field "value"
Taxonómiák
# Kategória létrehozása
wp term create category "My Category" --slug=my-category
# Címke létrehozása
wp term create post_tag "My Tag"
# Term listázás
wp term list category
# Term törlése
wp term delete category 5
Média
# Kép importálása
wp media import ./image.jpg --post_id=123
# URL-ből importálás
wp media import https://example.com/image.jpg
# Thumbnail újragenerálás
wp media regenerate
# Specifikus méret
wp media regenerate --image_size=thumbnail
# Média listázás
wp media list
Cache kezelés
# Object cache törlése
wp cache flush
# Transient törlése
wp transient delete --all
# Lejárt transient-ek törlése
wp transient delete --expired
# Rewrite szabályok frissítése
wp rewrite flush
Cron kezelés
# Cron események listázása
wp cron event list
# Cron futtatása
wp cron event run --due-now
# Specifikus esemény futtatása
wp cron event run wp_scheduled_delete
# Cron ütemezések
wp cron schedule list
Multisite
# Site listázás
wp site list
# Új site létrehozása
wp site create --slug=newsite --title="New Site"
# Site törlése
wp site delete 2 --yes
# Parancs futtatása minden site-on
wp site list --field=url | xargs -I {} wp --url={} plugin update --all
# Network admin
wp network meta get 1 site_name
WP-CLI konfigurációs fájl
wp-cli.yml (projekt szintű)
# wp-cli.yml
path: public
url: https://example.com
user: admin
# Parancs alias-ok
@staging:
ssh: [email protected]/var/www/staging
url: https://staging.example.com
@production:
ssh: [email protected]/var/www/production
url: https://example.com
# Alapértelmezett értékek
core download:
locale: hu_HU
plugin install:
activate: true
Globális konfiguráció
~/.wp-cli/config.yml:
# Globális beállítások
color: true
disabled_commands:
- db drop
# SSH beállítások
ssh:
default: my-server.com/var/www/html
SSH alias-ok
# wp-cli.yml
@staging:
ssh: [email protected]/var/www/html
# Használat
wp @staging plugin list
wp @staging db export - > staging-backup.sql
Egyedi parancsok
Egyszerű parancs
<?php
/**
* Plugin Name: My CLI Commands
*/
if ( defined( 'WP_CLI' ) && WP_CLI ) {
/**
* Prints a greeting.
*
* ## OPTIONS
*
* <name>
* : The name of the person to greet.
*
* ## EXAMPLES
*
* wp greet John
*
* @when after_wp_load
*/
function my_cli_greet_command( $args, $assoc_args ) {
list( $name ) = $args;
WP_CLI::success( "Hello, {$name}!" );
}
WP_CLI::add_command( 'greet', 'my_cli_greet_command' );
}
Osztály alapú parancs
<?php
if ( defined( 'WP_CLI' ) && WP_CLI ) {
class My_Plugin_CLI {
/**
* Clears all plugin data.
*
* ## OPTIONS
*
* [--yes]
* : Skip confirmation.
*
* ## EXAMPLES
*
* wp myplugin clear --yes
*/
public function clear( $args, $assoc_args ) {
WP_CLI::confirm( 'Are you sure you want to clear all data?', $assoc_args );
// Törlési logika...
WP_CLI::success( 'All data cleared!' );
}
/**
* Shows plugin status.
*/
public function status( $args, $assoc_args ) {
$data = [
[ 'Setting' => 'API Key', 'Value' => get_option( 'my_api_key', 'Not set' ) ],
[ 'Setting' => 'Cache', 'Value' => get_option( 'my_cache_enabled' ) ? 'Enabled' : 'Disabled' ],
];
WP_CLI\Utils\format_items( 'table', $data, [ 'Setting', 'Value' ] );
}
}
WP_CLI::add_command( 'myplugin', 'My_Plugin_CLI' );
}
Hasznos scriptek
Backup script
#!/bin/bash
# backup.sh
DATE=$(date +%Y%m%d_%H%M%S)
BACKUP_DIR="/backups/wordpress"
# Adatbázis backup
wp db export "${BACKUP_DIR}/db_${DATE}.sql"
# Fájlok backup
tar -czf "${BACKUP_DIR}/files_${DATE}.tar.gz" wp-content/uploads
# Régi backupok törlése (30 napnál régebbiek)
find "${BACKUP_DIR}" -type f -mtime +30 -delete
echo "Backup complete: ${DATE}"
Update script
#!/bin/bash
# update.sh
# Maintenance mode bekapcsolása
wp maintenance-mode activate
# Core frissítés
wp core update
wp core update-db
# Plugin frissítések
wp plugin update --all
# Téma frissítések
wp theme update --all
# Cache törlés
wp cache flush
wp rewrite flush
# Maintenance mode kikapcsolása
wp maintenance-mode deactivate
echo "Updates complete!"
Staging sync script
#!/bin/bash
# sync-from-production.sh
# Production adatbázis lekérése
wp @production db export - | wp @staging db import -
# URL csere
wp @staging search-replace 'https://example.com' 'https://staging.example.com'
# Admin jelszó reset staging-en
wp @staging user update admin --user_pass=stagingpass
echo "Sync complete!"
Scaffold parancsok
# Plugin scaffold
wp scaffold plugin my-plugin
# Téma scaffold
wp scaffold _s my-theme
# Child téma
wp scaffold child-theme my-child --parent_theme=flavor
# Post type
wp scaffold post-type book --plugin=my-plugin
# Taxonomy
wp scaffold taxonomy genre --post_types=book --plugin=my-plugin
# Block
wp scaffold block my-block --plugin=my-plugin
Package kezelés
# Telepített package-ek
wp package list
# Package telepítése
wp package install wp-cli/doctor-command
# Package frissítése
wp package update
# Package eltávolítása
wp package uninstall wp-cli/doctor-command
Hasznos package-ek
| Package | Parancs |
|---|---|
| doctor | wp doctor check - Egészség ellenőrzés |
| profile | wp profile - Teljesítmény profiling |
| dist-archive | wp dist-archive - Plugin/téma archívum |
| find | wp find - WordPress telepítések keresése |