რა არის 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-ზე:

  1. გახსენით ტერმინალი და გადაწერეთ WP CLI:
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
  1. შეამოწმეთ ფაილის მთლიანობა:
php wp-cli.phar --info
  1. მიანიჭეთ შესრულების უფლებები:
chmod +x wp-cli.phar
  1. გადაიტანეთ სისტემურ დირექტორიაში:
sudo mv wp-cli.phar /usr/local/bin/wp
  1. შეამოწმეთ ინსტალაცია:
wp --info

Windows-ზე:

  1. ჩამოტვირთეთ wp-cli.phar ფაილი
  2. შექმენით wp.bat ფაილი შემდეგი შინაარსით:
@ECHO OFF
php "%~dp0wp-cli.phar" %*
  1. დააყენეთ სისტემური 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']);

დამატებითი რესურსები და დოკუმენტაცია 📚

ოფიციალური რესურსები

სასარგებლო ბმულები

განვითარების მიმართულებები 🚀

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 დეველოპერის პროფესიულ განვითარებაში. დაიწყეთ მარტივი ბრძანებებით და თანდათანობით გადადით უფრო რთულ ოპერაციებზე. რეგულარული პრაქტიკით შეძლებთ სრულად გამოიყენოთ ამ ინსტრუმენტის პოტენციალი.

კატეგორია:

საფუძვლები,

ბოლო განახლება: ნოემბერი 25, 2024