WP-CLI
WordPress parancssori kezelése WP-CLI segítségével.
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?
Szekció neve “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
Szekció neve “Telepítés”Linux/macOS
Szekció neve “Linux/macOS”# Letöltéscurl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar# Jogosultságchmod +x wp-cli.phar# Áthelyezéssudo mv wp-cli.phar /usr/local/bin/wp# Ellenőrzéswp --infomacOS (Homebrew)
Szekció neve “macOS (Homebrew)”brew install wp-cliWindows
Szekció neve “Windows”# Scoop-palscoop install wp-cli
# Chocolatey-velchoco install wp-cliComposer
Szekció neve “Composer”composer global require wp-cli/wp-cli-bundleDocker
Szekció neve “Docker”docker run -it --rm \ -v $(pwd):/var/www/html \ wordpress:cli wp --infoAlapvető parancsok
Szekció neve “Alapvető parancsok”WordPress telepítés
Szekció neve “WordPress telepítés”# WordPress letöltésewp core download --locale=hu_HU# wp-config.php létrehozásawp config create \ --dbname=wordpress \ --dbuser=root \ --dbpass=password \ --dbhost=localhost# Adatbázis létrehozásawp db create# WordPress telepítésewp core install \ --url="http://localhost" \ --title="My WordPress Site" \ --admin_user=admin \ --admin_password=password \Verzió információk
Szekció neve “Verzió információk”# WordPress verziówp core version# WP-CLI verziówp cli version# PHP verziówp cli infoBővítmények kezelése
Szekció neve “Bővítmények kezelése”Listázás
Szekció neve “Listázás”# Összes bővítménywp plugin list# Aktív bővítményekwp plugin list --status=active# Frissítendő bővítményekwp plugin list --update=available# Táblázat formátumwp plugin list --format=table# JSON formátumwp plugin list --format=jsonTelepítés
Szekció neve “Telepítés”# Plugin telepítésewp plugin install akismet# Telepítés és aktiváláswp plugin install woocommerce --activate# Adott verzió telepítésewp plugin install akismet --version=5.0# ZIP fájlbólwp plugin install /path/to/plugin.zip# URL-bőlwp plugin install https://example.com/plugin.zipAktiválás és deaktiválás
Szekció neve “Aktiválás és deaktiválás”# Aktiváláswp plugin activate akismet# Deaktiváláswp plugin deactivate akismet# Összes plugin deaktiválásawp plugin deactivate --allFrissítés
Szekció neve “Frissítés”# Egy plugin frissítésewp plugin update akismet# Összes plugin frissítésewp plugin update --all# Dry run (mit frissítene)wp plugin update --all --dry-runTörlés
Szekció neve “Törlés”# Plugin törlésewp plugin delete akismet# Deaktiválás és törléswp plugin deactivate akismet && wp plugin delete akismetTémák kezelése
Szekció neve “Témák kezelése”# Téma listázáswp theme list# Téma telepítésewp theme install flavor --activate# Téma frissítésewp theme update flavor# Összes téma frissítésewp theme update --all# Téma törlésewp theme delete flavor# Aktív témawp theme statusWordPress core kezelés
Szekció neve “WordPress core kezelés”# Core frissítésewp core update# Adott verzióra frissítéswp core update --version=6.4.2# Core újratelepítésewp core download --force# Adatbázis frissítése (major update után)wp core update-db# Core integritás ellenőrzésewp core verify-checksumsFelhasználók kezelése
Szekció neve “Felhasználók kezelése”Listázás
Szekció neve “Listázás”# Összes felhasználówp user list# Adminokwp user list --role=administrator# JSON formátumwp user list --format=jsonLétrehozás
Szekció neve “Létrehozás”# Új felhasználó# Jelszóval# Admin létrehozásaMódosítás
Szekció neve “Módosítás”# Jelszó változtatáswp user update admin --user_pass=newpassword# Email változtatás# Szerep változtatáswp user set-role john administratorTörlés
Szekció neve “Törlés”# Felhasználó törlése (tartalom átadással)wp user delete john --reassign=1# Tartalom nélkül törléswp user delete john --yesAdatbázis műveletek
Szekció neve “Adatbázis műveletek”Alapok
Szekció neve “Alapok”# Adatbázis exportwp db export backup.sql# Adatbázis importwp db import backup.sql# SQL lekérdezéswp db query "SELECT * FROM wp_options LIMIT 10"# Tábla optimalizáláswp db optimize# Tábla javításwp db repairSearch-Replace
Szekció neve “Search-Replace”# URL cserewp search-replace 'http://old-domain.com' 'https://new-domain.com'# Dry runwp search-replace 'http://old-domain.com' 'https://new-domain.com' --dry-run# Specifikus táblákbanwp search-replace 'old' 'new' wp_posts wp_postmeta# Regex használatawp search-replace 'old' 'new' --regex# Serialized data kezelésewp search-replace 'old' 'new' --precisePrefix kezelés
Szekció neve “Prefix kezelés”# Prefix megjelenítésewp db prefix# Export specifikus táblákkalwp db export --tables=wp_posts,wp_postmetaOpciók kezelése
Szekció neve “Opciók kezelése”# Opció lekérésewp option get siteurl# Opció beállításawp option update blogname "My New Site Name"# JSON opció beállításawp option update my_option '{"key":"value"}' --format=json# Opció törlésewp option delete my_option# Összes opció (autoload)wp option list --autoload=yesTartalom kezelés
Szekció neve “Tartalom kezelés”Bejegyzések
Szekció neve “Bejegyzések”# Post listázáswp post list# Post létrehozásawp post create --post_type=post --post_title="Hello World" --post_status=publish# Post létrehozása fájlbólwp post create ./post-content.txt --post_title="My Post" --post_status=publish# Post törlésewp post delete 123# Összes vázlat törlésewp post delete $(wp post list --post_status=draft --format=ids)# Post metawp post meta get 123 _thumbnail_idwp post meta update 123 custom_field "value"Taxonómiák
Szekció neve “Taxonómiák”# Kategória létrehozásawp term create category "My Category" --slug=my-category# Címke létrehozásawp term create post_tag "My Tag"# Term listázáswp term list category# Term törlésewp term delete category 5Média
Szekció neve “Média”# Kép importálásawp media import ./image.jpg --post_id=123# URL-ből importáláswp media import https://example.com/image.jpg# Thumbnail újrageneráláswp media regenerate# Specifikus méretwp media regenerate --image_size=thumbnail# Média listázáswp media listCache kezelés
Szekció neve “Cache kezelés”# Object cache törlésewp cache flush# Transient törlésewp transient delete --all# Lejárt transient-ek törlésewp transient delete --expired# Rewrite szabályok frissítésewp rewrite flushCron kezelés
Szekció neve “Cron kezelés”# Cron események listázásawp cron event list# Cron futtatásawp cron event run --due-now# Specifikus esemény futtatásawp cron event run wp_scheduled_delete# Cron ütemezésekwp cron schedule listMultisite
Szekció neve “Multisite”# Site listázáswp site list# Új site létrehozásawp site create --slug=newsite --title="New Site"# Site törlésewp site delete 2 --yes# Parancs futtatása minden site-onwp site list --field=url | xargs -I {} wp --url={} plugin update --all# Network adminwp network meta get 1 site_nameWP-CLI konfigurációs fájl
Szekció neve “WP-CLI konfigurációs fájl”wp-cli.yml (projekt szintű)
Szekció neve “wp-cli.yml (projekt szintű)”path: publicurl: https://example.comuser: admin
# Parancs alias-ok@staging: url: https://staging.example.com
@production: url: https://example.com
# Alapértelmezett értékekcore download: locale: hu_HU
plugin install: activate: trueGlobális konfiguráció
Szekció neve “Globális konfiguráció”~/.wp-cli/config.yml:
# Globális beállításokcolor: truedisabled_commands: - db drop
# SSH beállításokssh: default: my-server.com/var/www/htmlSSH alias-ok
Szekció neve “SSH alias-ok”# wp-cli.yml@staging: ssh: [email protected]/var/www/html# Használatwp @staging plugin listwp @staging db export - > staging-backup.sqlEgyedi parancsok
Szekció neve “Egyedi parancsok”Egyszerű parancs
Szekció neve “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
Szekció neve “Osztály alapú parancs”<?phpif ( 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
Szekció neve “Hasznos scriptek”Backup script
Szekció neve “Backup script”#!/bin/bashDATE=$(date +%Y%m%d_%H%M%S)BACKUP_DIR="/backups/wordpress"# Adatbázis backupwp db export "${BACKUP_DIR}/db_${DATE}.sql"# Fájlok backuptar -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 -deleteecho "Backup complete: ${DATE}"Update script
Szekció neve “Update script”#!/bin/bash# Maintenance mode bekapcsolásawp maintenance-mode activate# Core frissítéswp core updatewp core update-db# Plugin frissítésekwp plugin update --all# Téma frissítésekwp theme update --all# Cache törléswp cache flushwp rewrite flush# Maintenance mode kikapcsolásawp maintenance-mode deactivateecho "Updates complete!"Staging sync script
Szekció neve “Staging sync script”#!/bin/bash# Production adatbázis lekérésewp @production db export - | wp @staging db import -# URL cserewp @staging search-replace 'https://example.com' 'https://staging.example.com'# Admin jelszó reset staging-enwp @staging user update admin --user_pass=stagingpassecho "Sync complete!"Scaffold parancsok
Szekció neve “Scaffold parancsok”# Plugin scaffoldwp scaffold plugin my-plugin# Téma scaffoldwp scaffold _s my-theme# Child témawp scaffold child-theme my-child --parent_theme=flavor# Post typewp scaffold post-type book --plugin=my-plugin# Taxonomywp scaffold taxonomy genre --post_types=book --plugin=my-plugin# Blockwp scaffold block my-block --plugin=my-pluginPackage kezelés
Szekció neve “Package kezelés”# Telepített package-ekwp package list# Package telepítésewp package install wp-cli/doctor-command# Package frissítésewp package update# Package eltávolításawp package uninstall wp-cli/doctor-commandHasznos package-ek
Szekció neve “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 |