რა არის WP CLI?
WP CLI (Command Line Interface) არის WordPress-ის ოფიციალური ხელსაწყო, რომელიც საშუალებას გაძლევთ მართოთ WordPress-ი ტერმინალიდან. ეს არის მძლავრი ინსტრუმენტი დეველოპერებისა და ადმინისტრატორებისთვის, რომელიც მნიშვნელოვნად აჩქარებს სხვადასხვა ოპერაციების შესრულებას.
მისი გამოყენებით შესაძლებელია პრაქტიკულად ყველა ის ოპერაცია, რასაც WordPress-ის ადმინისტრატორის პანელიდან ვასრულებთ, თუმცა გაცილებით სწრაფად და ეფექტურად.
რატომ უნდა გამოვიყენოთ WP CLI? 🎯
WP CLI-ის გამოყენებას მრავალი უპირატესობა აქვს:
1. სისწრაფე და ეფექტურობა
- ოპერაციები სრულდება გაცილებით სწრაფად, ვიდრე ადმინ პანელიდან
- შესაძლებელია რამდენიმე ოპერაციის ერთდროულად შესრულება
- არ არის დამოკიდებული ვებ ინტერფეისზე
- მცირე რესურსების გამოყენება
2. ავტომატიზაცია
- სკრიპტების შექმნა განმეორებადი დავალებებისთვის
- ბრძანებების დაგეგმვა cron-ის გამოყენებით
- ავტომატური სარეზერვო ასლების შექმნა
- მასიური ოპერაციების ავტომატიზაცია
3. მასშტაბურობა
- მრავალი საიტის ერთდროული მართვა
- მარტივი მიგრაცია სერვერებს შორის
- ეფექტური მულტისაიტის ადმინისტრირება
- მასიური განახლებების მართვა
4. დებაგინგი და ტესტირება
- დეტალური შეცდომების ლოგები
- ტესტების ავტომატიზაცია
- პერფორმანსის მონიტორინგი
- სწრაფი პრობლემების დიაგნოსტიკა
სისტემური მოთხოვნები 💻
WP CLI-ის გამოყენებისთვის საჭიროა:
- PHP 5.6 ან უფრო ახალი ვერსია
- WordPress 3.7 ან უფრო ახალი ვერსია
- Unix-მსგავსი გარემო (Linux/macOS)
- Windows-ზე საჭიროა WSL ან XAMPP
ინსტალაცია დეტალურად 🛠️
Linux/macOS-ზე:
- გახსენით ტერმინალი და გადაწერეთ WP CLI:
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
- შეამოწმეთ ფაილის მთლიანობა:
php wp-cli.phar --info
- მიანიჭეთ შესრულების უფლებები:
chmod +x wp-cli.phar
- გადაიტანეთ სისტემურ დირექტორიაში:
sudo mv wp-cli.phar /usr/local/bin/wp
- შეამოწმეთ ინსტალაცია:
wp --info
Windows-ზე:
- ჩამოტვირთეთ wp-cli.phar ფაილი
- შექმენით wp.bat ფაილი შემდეგი შინაარსით:
@ECHO OFF
php "%~dp0wp-cli.phar" %*
- დააყენეთ სისტემური PATH
ძირითადი ბრძანებების დეტალური აღწერა 📝
WordPress-ის ძირითადი მართვა
WordPress-ის ინსტალაცია:
# WordPress-ის ფაილების გადმოწერა
wp core download --locale=ka_GE
# კონფიგურაციის შექმნა
wp core config --dbname=mydb --dbuser=myuser --dbpass=mypass --dbhost=localhost --dbprefix=wp_
# WordPress-ის ინსტალაცია
wp core install --url=example.com --title="ჩემი საიტი" --admin_user=admin --admin_password=password --admin_email=admin@example.com
WordPress-ის განახლება:
# ვერსიის შემოწმება
wp core check-update
# განახლება
wp core update
# მონაცემთა ბაზის განახლება
wp core update-db
პლაგინების დეტალური მართვა
პლაგინების ინსტალაცია და აქტივაცია:
# პლაგინის ინსტალაცია
wp plugin install woocommerce --activate
# რამდენიმე პლაგინის ერთდროული ინსტალაცია
wp plugin install woocommerce wordfence yoast-seo --activate
# კონკრეტული ვერსიის ინსტალაცია
wp plugin install woocommerce --version=7.0.0
პლაგინების მართვა:
# პლაგინების სიის ნახვა
wp plugin list --status=active
# პლაგინის დეაქტივაცია
wp plugin deactivate woocommerce
# პლაგინის წაშლა
wp plugin delete woocommerce
# ყველა პლაგინის განახლება
wp plugin update --all --dry-run
თემების მართვა
თემების ოპერაციები:
# თემის ინსტალაცია
wp theme install twentytwentythree
# თემის აქტივაცია
wp theme activate twentytwentythree
# თემების სიის ნახვა
wp theme list --status=inactive
# თემის წაშლა
wp theme delete twentytwentyone
მონაცემთა ბაზის დეტალური მართვა
ბაზის ოპერაციები:
# სრული ბექაფი
wp db export backup-$(date +%Y%m%d).sql
# ბაზის იმპორტი
wp db import backup.sql
# ბაზის ოპტიმიზაცია
wp db optimize
# ბაზის შეკეთება
wp db repair
SQL ბრძანებების შესრულება:
# SQL მოთხოვნის შესრულება
wp db query "SELECT * FROM wp_posts LIMIT 5"
# SQL ფაილის შესრულება
wp db query < queries.sql
პოსტების და გვერდების მართვა
პოსტების ოპერაციები:
# ახალი პოსტის შექმნა
wp post create --post_type=post --post_title="სათაური" --post_content="კონტენტი" --post_status="publish"
# პოსტების სიის ნახვა
wp post list --post_type=post --posts_per_page=20
# პოსტის განახლება
wp post update 123 --post_title="ახალი სათაური"
# პოსტის წაშლა
wp post delete 123 --force
მომხმარებლების დეტალური მართვა
მომხმარებლების ოპერაციები:
# ახალი მომხმარებლის შექმნა
wp user create editor editor@example.com --role=editor --user_pass=password
# მომხმარებლის განახლება
wp user update 1 --display_name="ახალი სახელი"
# როლის შეცვლა
wp user set-role 2 author
# მომხმარებლის წაშლა
wp user delete 2 --reassign=1
რთული ოპერაციების მაგალითები 🚀
სრული საიტის მიგრაცია
# 1. ძველი საიტის ბექაფი
wp db export old-site.sql
wp export --dir=exports/
# 2. ახალ სერვერზე გადატანა
wp db import old-site.sql
wp import exports/*.xml --authors=create
# 3. URL-ების განახლება
wp search-replace 'old-domain.com' 'new-domain.com'
მასიური კონტენტის მანიპულაცია
# ყველა დრაფტის წაშლა
wp post delete $(wp post list --post_status=draft --format=ids)
# ყველა სურათის ოპტიმიზაცია
wp media regenerate --yes
ავტომატიზაციის სკრიპტი
#!/bin/bash
# სრული საიტის განახლება და ოპტიმიზაცია
wp core update
wp core update-db
wp plugin update --all
wp theme update --all
wp db optimize
wp cache flush
უსაფრთხოების საუკეთესო პრაქტიკები 🔒
1. სარეზერვო ასლების მართვა
- რეგულარული ბექაპების შექმნა
- სხვადასხვა ლოკაციაზე შენახვა
- ბექაპების ტესტირება
2. წვდომის კონტროლი
- SSH გასაღებების გამოყენება
- IP შეზღუდვები
- სპეციფიური მომხმარებლის შექმნა WP CLI-სთვის
3. ოპერაციების უსაფრთხოება
--dry-run
პარამეტრის გამოყენება- ტრანზაქციების გამოყენება
- შეცდომების ლოგირება
გაფართოებული გამოყენების მაგალითები 🔧
კასტომ ბრძანებების შექმნა
WP_CLI::add_command('custom-command', function($args) {
// კასტომ ლოგიკა
});
WP-CLI-ის ალიასები
# ~/.wp-cli/config.yml
@staging:
ssh: user@staging-server.com
path: /var/www/wordpress
Cron დავალებების ავტომატიზაცია
# ყოველდღიური ბექაპი
0 0 * * * wp db export /backups/daily-$(date +\%Y\%m\%d).sql
ხშირი პრობლემების გადაჭრა 🔍
1. მემორიის პრობლემები
# მემორის ლიმიტის გაზრდა
wp cli update --allow-root --extra-php <<PHP
define( 'WP_MEMORY_LIMIT', '256M' );
PHP
2. დროის ლიმიტის პრობლემები
# შესრულების დროის გაზრდა
set_time_limit(300);
3. წვდომის პრობლემები
# ფაილების მფლობელის შეცვლა
chown -R www-data:www-data /var/www/wordpress
გამოსადეგი რჩევები და ხრიკები 💡
1. გლობალური კონფიგურაცია
# ~/.wp-cli/config.yml
path: /var/www/wordpress
apache_modules:
- mod_rewrite
2. ალიასების შექმნა
alias wpb='wp db export backup.sql'
alias wpu='wp core update && wp plugin update --all'
3. ინტერაქტიული შელი
wp shell
>>> $posts = get_posts(['post_type' => 'post']);
დამატებითი რესურსები და დოკუმენტაცია 📚
ოფიციალური რესურსები
სასარგებლო ბმულები
- WP CLI სამუშაო მაგალითები
- WP CLI პაკეტების რეპოზიტორია
- WP CLI-ის საუკეთესო პრაქტიკები
- WordPress-ის კოდექსი
განვითარების მიმართულებები 🚀
1. კასტომ სკრიპტების შექმნა
// custom-cli-command.php
class Custom_CLI_Command {
/**
* მასიური კონტენტის განახლება
*
* ## OPTIONS
*
* [--type=<post_type>]
* : პოსტის ტიპი განახლებისთვის
*
* ## EXAMPLES
*
* wp custom update-content --type=post
*/
public function update_content( $args, $assoc_args ) {
$post_type = $assoc_args['type'] ?? 'post';
// სკრიპტის ლოგიკა
}
}
WP_CLI::add_command( 'custom', 'Custom_CLI_Command' );
2. ავტომატიზაციის გაფართოება
#!/bin/bash
# საიტის სრული აუდიტი
wp site audit() {
echo "🔍 საიტის აუდიტის დაწყება..."
# პლაგინების შემოწმება
wp plugin list --format=json
# თემების შემოწმება
wp theme list --format=json
# ბაზის სტატუსი
wp db size
# უსაფრთხოების შემოწმება
wp core verify-checksums
echo "✅ აუდიტი დასრულებულია"
}
3. მულტისაიტის მართვა
# ყველა საიტის განახლება
wp site list --field=url | xargs -n1 -I % wp --url=% core update
# სტატისტიკის შეგროვება
wp site list --field=blog_id | xargs -n1 -I % wp --url=% db size
პროდაქშენ გარემოში გამოყენება 🏭
1. დეპლოიმენტის ავტომატიზაცია
#!/bin/bash
# დეპლოიმენტის სკრიპტი
deploy_wordpress() {
# მეინთენანს მოდის ჩართვა
wp maintenance-mode activate
# ბექაფის შექმნა
wp db export pre-deploy-backup.sql
# განახლებები
wp core update
wp plugin update --all
wp theme update --all
# ქეშის გასუფთავება
wp cache flush
# მეინთენანს მოდის გამორთვა
wp maintenance-mode deactivate
}
2. მონიტორინგის სისტემა
#!/bin/bash
# საიტის ჯანმრთელობის შემოწმება
check_site_health() {
# ბაზის შემოწმება
wp db check
# ფაილების მთლიანობის შემოწმება
wp core verify-checksums
# მემორის გამოყენება
wp site health
}
3. სარეზერვო ასლების მართვა
#!/bin/bash
# ავტომატური ბექაფი
backup_site() {
# თარიღის დაფორმატება
DATE=$(date +"%Y-%m-%d_%H-%M")
# ბაზის ბექაფი
wp db export "database_${DATE}.sql"
# ფაილების ბექაფი
wp export --dir="content_${DATE}"
# ბექაპების არქივაცია
tar -czf "backup_${DATE}.tar.gz" "database_${DATE}.sql" "content_${DATE}"
# დროებითი ფაილების წაშლა
rm "database_${DATE}.sql"
rm -rf "content_${DATE}"
}
WP CLI არის უძლიერესი ინსტრუმენტი, რომელიც მნიშვნელოვნად ამარტივებს WordPress-ის მართვას. მისი ეფექტური გამოყენება საშუალებას გაძლევთ:
- დაზოგოთ დრო რუტინულ დავალებებზე
- გაზარდოთ პროდუქტიულობა
- ავტომატიზირება გაუკეთოთ განმეორებად პროცესებს
- უფრო ეფექტურად მართოთ დიდი საიტები
WP CLI-ის დაუფლება არის მნიშვნელოვანი ნაბიჯი WordPress დეველოპერის პროფესიულ განვითარებაში. დაიწყეთ მარტივი ბრძანებებით და თანდათანობით გადადით უფრო რთულ ოპერაციებზე. რეგულარული პრაქტიკით შეძლებთ სრულად გამოიყენოთ ამ ინსტრუმენტის პოტენციალი.