Ugrás a fő tartalomhoz

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

PackageParancs
doctorwp doctor check - Egészség ellenőrzés
profilewp profile - Teljesítmény profiling
dist-archivewp dist-archive - Plugin/téma archívum
findwp find - WordPress telepítések keresése

Források