آموزش WP-CLI یا همان خط فرمان وردپرس

خط فرمان وردپرس WP-CLI

خط فرمان وردپرس WP-CLI

WP-CLI رابط دستوری وردپرس است که به مدیران وب سایت های وردپرسی از طریق خط فرمان(Command Line) امکان مدیریت سایت شان را می دهد. از طریق CLI وردپرس قادر خواهید بود وب سایت خود را ارتقاء دهید، نسخه پشتیبان بگیرید، پست جدید درج کنید و خیلی از کارهای دیگری که در پنل ادمین وردپرس در دسترس شما هستند از طریق CLI نیز در دسترس تان خواهد بود.

با کمک این مقاله آموزشی قادر خواهید بود تا عملیات های رایج مدیریتی سایت وردپرسی مثل به روزرسانی، پشتیبان گیری از دیتابیس، نصب و حذف افزونه ها و قالب ها و همچنین درج و حذف پست، اعمال تغییر روی آدرس URL سایت و دستورات کمکی برای استفاده از خط فرمان وردپرس را فرا بگیرید. دقت داشته باشید برای بهره گیری از WP-CLI نیاز است تا یک ارتباط SSH با سروری که میزبان وب سایت شماست داشته باشید.

برای دریافت لیست دستوراتی که قادر به استفاده از آن ها هستید کافیست تا عبارت wp help یا wp را تایپ کنید. لیستی که در ادامه می آید، برایتان به نمایش در می آید:

akismet           Filter spam comments.

cache             Manage the object cache.

cap               Manage user capabilities.

checksum          Verify WordPress core checksums.

cli               Review current WP-CLI info, check for updates, or see defined aliases.

comment           Manage comments.

config            Manage the wp-config.php file

core              Download, install, update and manage a WordPress install.

cron              Manage WP-Cron events and schedules.

db                Perform basic database operations using credentials stored in wp-config.php

eval              Execute arbitrary PHP code.

eval-file         Load and execute a PHP file.

export            Export WordPress content to a WXR file.

help              Get help on WP-CLI, or on a specific command.

import            Import content from a WXR file.

jetpack           Control your local Jetpack installation.

language

media             Import new attachments or regenerate existing ones.

menu              List, create, assign, and delete menus.

network

option            Manage options.

package           Manage WP-CLI packages.

plugin            Manage plugins.

post              Manage posts.

post-type         Manage post types.

rewrite           Manage rewrite rules.

role              Manage user roles.

scaffold          Generate code for post types, taxonomies, plugins, child themes, etc.

search-replace    Search/replace strings in the database.

server            Launch PHP's built-in web server for this specific WordPress install.

sg                Manage SiteGround Cache

sgphpcompat       Test compatibility with different PHP versions.

shell             Interactive PHP console.

sidebar           Manage sidebars.

site              Perform site-wide operations.

super-admin       Manage super admins on WordPress multisite.

taxonomy          Manage taxonomies.

term              Manage terms.

theme             Manage themes.

transient         Manage transients.

user              Manage users.

widget            Manage sidebar widgets.

اگر مایلید اطلاعات دقیق تری نسبت به برخی دستورات داشته باشید، کافیست نام دستور را پس از wp help بیاورید. به عنوان مثال:

wp help db export

و خروجی شما:

NAME
  wp db export
DESCRIPTION
  Exports the database to a file or to STDOUT.
SYNOPSIS
  wp db export [<file>] [--<field>=<value>] [--tables=<tables>] [--exclude_tables=<tables>] [--porcelain]
ALIAS
  dump
  Runs `mysqldump` utility using `DB_HOST`, `DB_NAME`, `DB_USER` and
  `DB_PASSWORD` database credentials specified in wp-config.php.
OPTIONS
  [<file>]
    The name of the SQL file to export. If '-', then outputs to STDOUT. If omitted, it will be '{dbname}.sql'.
  [--<field>=<value>]
    Extra arguments to pass to mysqldump
  [--tables=<tables>]
    The comma separated list of specific tables to export. Excluding this parameter will export all tables in the database.
  [--exclude_tables=<tables>]
    The comma separated list of specific tables that should be skipped from exporting. Excluding this parameter will export all tables in the database.
  [--porcelain]
    Output filename for the exported database.
EXAMPLES
    # Export database with drop query included
    $ wp db export --add-drop-table
    Success: Exported to 'wordpress_dbase.sql'.
    # Export certain tables
    $ wp db export --tables=wp_options,wp_users
    Success: Exported to 'wordpress_dbase.sql'.
    # Export all tables matching a wildcard
    $ wp db export --tables=$(wp db tables 'wp_user*' --format=csv)
    Success: Exported to 'wordpress_dbase.sql'.
    # Export all tables matching prefix
    $ wp db export --tables=$(wp db tables --all-tables-with-prefix --format=csv)
    Success: Exported to 'wordpress_dbase.sql'.
    # Skip certain tables from the exported database
    $ wp db export --exclude_tables=wp_options,wp_users
    Success: Exported to 'wordpress_dbase.sql'.

 

آپدیت وردپرس از طریق WP-CLI

در ابتدا نیاز است تا نسخه فعلی وردپرسی که دارید بررسی شود.

username@servername [~/WordPress/location]# wp core version
4.8

اگر مایلید هسته وردپرس تان را به نسخه جدیدتری به روزرسانی کنید، می توانید از دستورات زیر استفاده کنید:

username@servername [~/WordPress/location]# wp core update

Updating to version 4.8.1 (en_US)...

Downloading update from https://downloads.wordpress.org/release/wordpress-4.8.1-partial-0.zip...

Unpacking the update...

Success: WordPress updated successfully.

 

آپدیت افزونه های وردپرس با استفاده از WP-CLI

اگر مایلید تا هر افزونه یا قالبی که بر روی وردپرس خود دارید، آپدیت کنید می توانید از طریق خط فرمان وردپرس(WP-CLI) از آن استفاده کنید. برای اطلاع از وضعیت فعلی افزونه ها می توانید از دستور زیر استفاده کنید:

username@servername [~/WordPress/location]# wp plugin list

+----------------+----------+-----------+---------+

| name           | status   | update    | version |

+----------------+----------+-----------+---------+

| akismet        | active   | available | 3.3.2   |

| google-captcha | active   | none      | 1.31    |

| hello          | inactive | none      | 1.6     |

| jetpack        | active   | none      | 5.3     |

| sg-cachepress  | active   | none      | 3.3.2   |

+----------------+----------+-----------+---------+

در این مثال ما 5 افزونه داریم که بر روی نسخه آزمایشی نصب شده اند. مشاهده می کنید که یک آپگرید برای یکی از آن ها در دسترس است. برای این که آن افزونه را به روزرسانی کنیم می توانیم از دستور زیر استفاده کنیم:

username@servername [~/WordPress/location]# wp plugin update akismet

Enabling Maintenance mode...

Downloading update from https://downloads.wordpress.org/plugin/akismet.3.3.4.zip...

Unpacking the update...

Installing the latest version...

Removing the old version of the plugin...

Plugin updated successfully.

Disabling Maintenance mode...

+---------+-------------+-------------+---------+

| name    | old_version | new_version | status  |

+---------+-------------+-------------+---------+

| akismet | 3.3.2       | 3.3.4       | Updated |

+---------+-------------+-------------+---------+

Success: Updated 1 of 1 plugins.

نصب و فعالسازی افزونه ها و قالب های وردپرس از طریق WP-CLI

برای نصب و فعالسازی افزونه ی جدید می توانید از دستورات زیر استفاده کنید:

wp plugin install Plugin_Name

wp plugin activate Plugin_Name

دقت داشته باشید که در دستورات فوق بایستی عبارت Plugin_Name با نام دقیق(slug) افزونه مورد نظرتان در مخزن وردپرس تعویض شود.

 

با خط فرمان وردپرس(WP-CLI) چه کارهای دیگری می توان انجام داد

با استفاده از دستور زیر می توانید یک پست جدید در وردپرس ایجاد کنید:

username@servername [~/WordPress/location]# wp post create --post_type=page --post_status=publish --post_title='My test post' --post_content='This is a test post'

Success: Created post 18

اگر به یک پست خاص نیازی ندارید می توانید به راحتی آن را حذف کنید:

username@servername [~/WordPress/location]# wp post delete 18

Success: Trashed post

همچنین قادر خواهید بود تا از وردپرس تان یک نسخه پشتیبان تهیه کنید:

username@servername [~/WordPress/location]# wp db export

Success: Exported to 'username_wp123-3150ba8.sql'.

 

اگر به هر دلیلی نیاز دارید تا دامنه اصلی سایت وردپرس را تغییر دهید، با استفاده از دستور زیر می توانید URL جدید را جایگزین کنید.

wp option update home https://newdomain.com

wp option update siteurl https://newdomain.com