모든 WordPress 플러그인에 WP-CLI 지원을 추가하는 방법
게시 됨: 2018-08-14사용자의 필요에 맞게 플러그인을 조정하는 것은 모든 플러그인 소유자가 따라야 하는 주요 의제 중 하나입니다. 더 많은 색상 선택기, 글꼴 및 유사한 시각적 옵션을 의미하는 첫 페이지 슬라이더의 경우. 그러나 조만간 개발자, 관리자 및 기타 고급 사용자를 대상으로 하는 경우 CLI 지원을 원할 것입니다. 그들은 마우스를 버리고 키보드로만 작업하기를 원할 것입니다. WP-CLI 프로젝트 덕분에 플러그인에 CLI 지원을 추가하는 것은 케이크 조각입니다.
#WordPress 플러그인에 @wpcli 지원을 추가하면 개발자, 고급 사용자 및 관리자에게 공개됩니다.
트윗하려면 클릭영원한 GUI 대 CLI 전투
방해가 되지 않도록 합시다. GUI(그래픽 사용자 인터페이스)는 CLI(명령줄 인터페이스)보다 좋지 않고 그 반대도 마찬가지입니다. CLI는 GUI보다 좋지 않습니다. 사람들은 다른 것보다 하나를 선호합니다. 개인의 취향이나 습관의 문제입니다. "똑같아요, 교환 가능한가요?" 약간의 타협이 있기는 하지만, 흑백 명령줄 인터페이스에서 색상을 선택하는 것을 좋아하는 사람은 아무도 없습니다. 그것은 단순히 역효과입니다. 그들은 각각 특별한 목적을 수행합니다.
"그럼 왜 둘 다 필요합니까? WP는 GUI 지향적인 것이 아닌가요?” 즉, WP는 GUI 지향적입니다. 그러나 모든 사용자를 위한 것은 아닙니다. 어떤 사람들은 CLI에 더 적합한 방식으로 WP를 사용하며, 이를 통해 훨씬 빠르게 작업할 수 있습니다. 게다가 둘 다 가지고 있지 않은 이유는 무엇입니까? 그것은 아무것도 팽창하거나 방해하지 않습니다.
그래서 WP-CLI는 플러그인이죠?
아니요, 플러그인이 아닙니다. WP-CLI가 작동하기 위해 WordPress 설치에 아무것도 추가할 필요가 없습니다. OS에 WP-CLI만 있으면 됩니다. WP-CLI는 PHP로 작성되었으며 phar에 포장되어 있습니다. 이는 전체 PHP 애플리케이션을 다양한 OS에 쉽게 배포하고 설치할 수 있도록 "phar"(PHP 아카이브)라는 단일 파일에 넣는 방법입니다. 설치 프로세스는 운영 체제에 따라 다르지만 WP-CLI 핸드북에 쉽고 잘 설명되어 있습니다. 또는 비디오에 더 관심이 있는 경우 Windows에 WP-CLI 설치 중 하나가 있습니다.
나는 위의 자료를 반복하지 않을 것입니다. 충분히 상세하며 몇 분 안에 WP-CLI를 사용할 수 있습니다. 실행 중인 경우 작업 디렉토리를 작업하려는 WP 설치로 변경하고 wp option get home
을 실행하여 올바른 WP 설치에 있고 WP-CLI가 작동하는지 확인하십시오.
보기보다 간단합니다
먼저 사용자가 CLI를 통해 WP와 상호 작용하는지 여부를 알려주는 기능이 필요합니다. CLI에 있는 동안 HTTP 헤더를 보내지 않고 "일반" 호출에 CLI 기능을 포함하지 않는 것과 같은 많은 경우에 유용합니다. 또한 약간의 변경으로 원래 GUI용으로 작성된 이전 기능을 재사용할 수 있는 기회도 제공합니다.
function is_cli_running() { return defined( 'WP_CLI' ) && WP_CLI; }
다음 단계는 CLI 명령의 이름을 파악하는 것입니다. 약 40개의 내장 명령이 있습니다. 따라서 이러한 이름은 사용할 수 없으며 "google"과 같은 브랜드 이름은 사용하지 않아야 합니다. Google을 소유하고 있지 않을 수 있습니다. 이상적으로는 플러그인의 이름이거나 플러그인이 수행하는 기능 세트의 우산 이름이어야 합니다. 그러면 메인 네임스페이스를 오염시키지 않기 위해 해당 플러그인 아래에 모든 명령을 넣을 수 있습니다. 다른 코드와 마찬가지로 상식입니다. site-info
를 사용하여 사이트에 대한 다양한 정보를 반환하는 몇 가지 함수를 만들어 보겠습니다.
일을 깔끔하고 깔끔하게 유지하려면 모든 WP-CLI 관련 코드를 custom-wp-cli-commands.php
새 파일에 넣습니다. 필요한 경우와 모든 CLI 관련 코드를 사용할 수 있는 경우에만 해당 파일을 포함합니다. 이를 위해 방금 만든 함수를 사용합니다. 테스트 및 학습을 위해 파일을 활성 테마의 폴더에 넣은 다음 테마의 functions.php
파일에 추가하십시오.
if ( is_cli_running() ) { require_once 'custom-wp-cli-commands.php'; }
그런 다음 이것을 custom-wp-cli-commands.php
에 넣으십시오.
/** * Just a few sample commands to learn how WP-CLI works */ class cli_site_info extends WP_CLI_Command { /** * Display version information. * ## OPTIONS * * [--wponly] * : Shows only WP version info, omitting the plugin one. */ function version( $args, $assoc_args ) { if ( !empty( $assoc_args['wponly'] ) ) { WP_CLI::line( 'Version of WordPress is ' . get_bloginfo( 'version' ) . '.' ); } else { WP_CLI::line( 'Version of this plugin is 0.1-beta, and version of WordPress ' . get_bloginfo( 'version' ) . '.' ); } } /** * Display the number of plugins. */ function plugins() { WP_CLI::line( 'There are a total of ' . sizeof( get_plugins() ) . ' plugins on this site.' ); } } WP_CLI::add_command( 'site-info', 'cli_site_info' );
사이트, 홈페이지 또는 관리자를 브라우저에서 열면 아무 일도 일어나지 않습니다. 좋아요. 새 CLI 명령을 테스트하려면 명령줄 창으로 돌아가서 wp site-info version
을 실행하면 플러그인과 사이트 버전이 표시됩니다. 또는 wp site-info plugins
을 실행하면 사이트의 총 플러그인 수를 확인할 수 있습니다. 쉽죠? 코드를 살펴보겠습니다.
PHP 클래스를 확장하는 것만큼 쉽습니다.
우리 클래스 cli_site_info
는 WP_CLI_Command
클래스를 확장합니다. 거기에 멋진 것은 없습니다. 원하는 클래스를 호출할 수 있습니다. 중요한 것은 파일의 마지막 줄에 있는 코드입니다 – WP_CLI::add_command( 'site-info', 'cli_site_info' )
. 최상위 명령을 등록하고 클래스를 여기에 연결합니다. site-info
명령을 다른 것으로 변경하려는 경우 여기에서 수행할 수 있습니다.
클래스의 모든 공용 메서드(함수)는 WP-CLI의 하위 명령입니다. 적절한 WP-CLI 용어를 배우려면 명령의 구조를 확인하십시오. 어디에서든 메소드를 "등록"하거나 추가 작업을 수행할 필요가 없습니다. 우리가 plugins()
및 version()
에 대해 했던 것처럼 – 표준 함수를 생성하기만 하면 됩니다. WP-CLI는 그것으로 무엇을 해야 하는지 알게 될 것입니다.
메서드에 들어가면 필요한 모든 코드를 실행할 수 있습니다. 그러나 CLI와 상호 작용하려면 echo
와 같은 기능이 예상대로 작동하지 않으므로 몇 가지 사용자 지정 기능이 필요합니다. echo
대신 WP_CLI::line()
이 있습니다. 내부 WP-CLI API는 필요한 모든 것을 다루며 모든 기능은 잘 문서화되어 있을 뿐만 아니라 입력, 출력, 기타, 시스템 및 기타 범주로 구분되어 있어 찾기가 매우 쉽습니다.
텍스트를 인쇄하는 것 외에도 (연관) 명령 인수를 사용하여 WP 버전 정보만 출력하는 wp site-info version --wponly
와 같은 것을 호출할 수 있습니다. 연관 인수는 메서드의 두 번째 함수 인수에 저장됩니다. 우리의 경우 $assoc_args
라고 합니다. 남은 유일한 것은 특정 값에 대한 배열 키를 테스트하고 그에 따라 코드를 조정하는 것입니다. function version( $args, $assoc_args )
에서 했던 것처럼요.
설명서 및 CLI 내 도움말
WP-CLI에는 도움말 시스템이 내장되어 있습니다. 꽤 편리합니다. 개발자가 코드에서 명령을 설명하는 데 약간의 시간을 투자한다면 명령에 대한 외부 문서가 필요하지 않습니다. 문서는 (불행히도) 자체적으로 작성되지 않지만 명령을 생성하는 동안 최소한의 투자를 한다면 사용자는 모든 문서를 한 지붕 아래에 두게 되므로 영원히 감사할 것입니다.
PHPDoc 형식을 사용하여 클래스의 문서를 주석으로 작성합니다. 더 자세히 알아보려면 CLI 핸드북을 확인하십시오. wp help site-info
를 실행하면 하위 명령의 목록과 설명을 얻을 수 있으며 코드를 보면 어디서 왔는지 알 수 있습니다. 매우 자명합니다. version 하위 명령에 대한 자세한 내용은 wp help site-info version
을 실행하면 옵션에 대한 세부 정보도 얻을 수 있습니다.
많은 사람들이 사용하지는 않지만 @wpcli는 #WordPress의 미래와 많은 사용자의 의견을 형성하는 사람들이 자주 사용합니다. 플러그인에 CLI를 추가하는 것은 현명한 조치일 수 있습니다.
트윗하려면 클릭사용자를 행복하게 하십시오
물론, 날씨 위젯을 개발 중이라면 WP-CLI 지원을 추가하는 것이 올바른 움직임처럼 들리지 않습니다. 그러나 WP 재설정과 같이 열성적인 개발자 및 관리자가 사용하는 모든 도구는 WP-CLI를 통해 큰 이점을 얻을 수 있습니다. 사용자는 명령을 연결하고 bash 스크립트를 작성하며 일반적으로 더 빠르고 쉽게 더 많은 작업을 수행할 수 있습니다. 이는 현재 사용 중인 수익화 모델에 관계없이 더 나은 리뷰, 더 행복한 사용자, 더 많은 사용자, 결국 더 많은 돈으로 이어집니다.