Створення команди WP CLI

Створити свої команди WP CLI дуже просто. Варіантів робити це кілька, нижче розглянемо деякі з них.

Методи оформлення виведення в консолі, дивіться тут .

Варіант 1: створення WP CLI команди за допомогою методу add_command()

Використовуємо метод WP_CLI::add_command()

WP_CLI::add_command( 'my command', function ( $args, $assoc_args ) {

	WP_CLI::success( $args[0] . ' ' . $assoc_args['append'] . ' ' . $assoc_args['all'] );
} );

Тепер використовуємо у командному рядку:

$ wp my command arg1 --append=foo --all

Success: arg1 foo 1

Варіант 2: створення команд через клас

  1. Створюємо файл class-My_Command.phpназва файлу можна вказати своє.

  2. Підключаємо файл у PHP наприклад, файл теми functions.php або в плагін.

  3. Додаємо наступний код у файл:
<?php

if( ! class_exists( 'WP_CLI' ) ){
	return;
}

WP_CLI::add_command( 'mycommand', 'My_Command', [] );

class My_Command extends WP_CLI_Command {

	public function __construct(){}

	/**
	 * Working with cache and removable data (post meta).
	 *
	 * ## OPTIONS
	 *
	 * <rm>
	 * : Removes cache.
	 *
	 * [--stubs]
	 * : Remove only stubs from cache. Сам не є specify any params.
	 *
	 * [--meta]
	 * : Remove past meta associated with this plugin.
	 *
	 * ## EXAMPLES
	 *
	 * wp mycommand cache rm # treats as `rm --stubs`
	 * wp mycommand cache rm --meta
	 *
	 * @param $args
	 * @param $params
	 */
	public function cache( $args, $params ){

		// clear cache
		if( 'rm' === array_shift( $args ) ){

			$type = 'rm_stub_thumbs';
			isset( $params['thumbs'] ) && $type = 'rm_thumbs';

			FooClass::init()->force_clear( $type );
		}
	}

	/**
	 * Один custom code (for tests for example).
	 *
	 * ## EXAMPLES
	 *
	 * wp mycommand custom
	 */
	public function custom(){

		// clear cache
		if( 'rm' === array_shift( $args ) ){

			$type = 'rm_stub_thumbs';
			isset( $params['thumbs'] ) && $type = 'rm_thumbs';

			FooClass::init()->force_clear( $type );
		}
	}

}

Тепер для створення чергової команди потрібно просто додати метод у створені клас. Назва методу стане назвою першого аргументу команди.

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *