วิธีเพิ่มการรองรับ WP-CLI ให้กับปลั๊กอิน WordPress ใดๆ
เผยแพร่แล้ว: 2018-08-14การปรับปลั๊กอินตามความต้องการของผู้ใช้ถือเป็นหนึ่งในวาระหลักที่เจ้าของปลั๊กอินทุกคนต้องปฏิบัติตาม สำหรับแถบเลื่อนหน้าแรกซึ่งหมายถึงตัวเลือกสี ฟอนต์ และตัวเลือกภาพที่คล้ายคลึงกันมากขึ้น อย่างไรก็ตาม หากคุณให้บริการสำหรับนักพัฒนา ผู้ดูแลระบบ และผู้ใช้ระดับสูงอื่นๆ ไม่ช้าก็เร็ว พวกเขาต้องการการสนับสนุน CLI พวกเขาต้องการทิ้งเมาส์และใช้งานได้กับแป้นพิมพ์เท่านั้น ขอบคุณโครงการ WP-CLI ที่เพิ่มการรองรับ CLI ให้กับปลั๊กอินของคุณเป็นเรื่องง่ายดาย
การเพิ่มการสนับสนุน @wpcli ให้กับปลั๊กอิน #WordPress ของคุณ จะเป็นการเปิดให้กับนักพัฒนา ผู้ใช้ระดับสูง และผู้ดูแลระบบ
คลิกเพื่อทวีตGUI นิรันดร์กับการต่อสู้ CLI
ออกไปให้พ้นทางกันเถอะ: GUI (Graphical User Interface) ไม่ได้ดีไปกว่า CLI (Command Line Interface) และในทางกลับกัน: CLI ไม่ได้ดีไปกว่า GUI ผู้คนชอบสิ่งใดสิ่งหนึ่งมากกว่ากัน มันเป็นเรื่องของความชอบส่วนตัวหรือนิสัย “เหมือนกันหรือเปล่า ใช้แทนกันได้หรือเปล่า” ด้วยการประนีประนอม ใช่พวกเขาสามารถเป็นได้ แต่ไม่มีใครชอบเลือกสีในอินเทอร์เฟซบรรทัดคำสั่งขาวดำ นั่นเป็นเพียงการต่อต้าน พวกเขาแต่ละคนมีจุดประสงค์เฉพาะ
“แล้วทำไมเราถึงต้องการทั้งสองอย่าง? WP ไม่ใช่ GUI ที่มุ่งเน้นมากกว่าหรือไม่ มันคือ WP นั้นเน้น GUI มากกว่า แต่ไม่ใช่สำหรับผู้ใช้ทั้งหมด บางคนใช้ WP ในลักษณะที่เหมาะสมกับ CLI มากกว่า และทำให้พวกเขาทำงานได้เร็วขึ้นมาก ยิ่งกว่านั้นทำไมไม่มีทั้ง? มันไม่ได้บวมอะไรหรือขวางทาง
ดังนั้น WP-CLI เป็นปลั๊กอินใช่ไหม
ไม่ มันไม่ใช่ปลั๊กอิน คุณไม่จำเป็นต้องเพิ่มอะไรในการติดตั้ง WordPress เพื่อให้ WP-CLI ทำงานได้ คุณต้องใช้ WP-CLI บนระบบปฏิบัติการของคุณเท่านั้น WP-CLI เขียนด้วย PHP และบรรจุใน Phar เป็นวิธีการรวมแอปพลิเคชัน PHP ทั้งหมดไว้ในไฟล์เดียว "phar" (PHP Archive) เพื่อการแจกจ่ายและติดตั้งที่ง่ายดายบน OS-es ต่างๆ ขั้นตอนการติดตั้งขึ้นอยู่กับระบบปฏิบัติการของคุณ แต่เป็นเรื่องง่ายและได้รับการบันทึกไว้อย่างดีในคู่มือ WP-CLI – หรือหากคุณชอบวิดีโอมากกว่านี้ นี่คือหนึ่งในการติดตั้ง WP-CLI บน Windows
ฉันจะไม่พูดซ้ำเนื้อหาข้างต้น มีรายละเอียดเพียงพอและน่าจะช่วยให้คุณใช้งาน WP-CLI ได้ในเวลาไม่กี่นาที เมื่อคุณเปิดใช้งานแล้ว ให้เปลี่ยนไดเร็กทอรีการทำงานของคุณเป็นการติดตั้ง WP ที่คุณวางแผนจะใช้งานและเรียกใช้ wp option get home
เพื่อให้แน่ใจว่าคุณใช้การติดตั้ง WP ที่ถูกต้องและ WP-CLI นั้นใช้งานได้
ง่ายกว่าที่คิด
อันดับแรก เราต้องการฟังก์ชันที่จะบอกเราว่าผู้ใช้โต้ตอบกับ WP ผ่าน CLI หรือไม่ มีประโยชน์สำหรับหลายๆ อย่าง เช่น การไม่ส่งส่วนหัว HTTP ใดๆ ขณะอยู่ใน CLI และไม่รวมฟังก์ชัน 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 site-info version --wponly
(ลองใช้งาน) ซึ่งแสดงเฉพาะข้อมูลเวอร์ชัน WP อาร์กิวเมนต์ที่เชื่อมโยงจะถูกเก็บไว้ในอาร์กิวเมนต์ของฟังก์ชันที่สองของเมธอด ในกรณีของเราเรียกว่า $assoc_args
เหลือเพียงการทดสอบคีย์อาร์เรย์สำหรับค่าเฉพาะและปรับโค้ดตามนั้น ตามที่เราทำใน function version( $args, $assoc_args )
เอกสารและความช่วยเหลือใน CLI
WP-CLI มีระบบช่วยเหลือในตัว มันค่อนข้างสะดวก ไม่จำเป็นต้องมีเอกสารภายนอกสำหรับคำสั่งใดๆ หากนักพัฒนาใช้เวลาสักเล็กน้อยเพื่ออธิบายคำสั่งในโค้ดของเขา เอกสารจะไม่เขียนเอง (น่าเสียดาย) แต่ถ้าคุณลงทุนขั้นต่ำเปล่าในขณะที่สร้างคำสั่ง ผู้ใช้จะรู้สึกขอบคุณตลอดไป เพราะคุณจะรวมเอกสารทั้งหมดไว้ในที่เดียว
คุณเขียนเอกสารในชั้นเรียนของคุณเป็นความคิดเห็น โดยใช้รูปแบบ PHPDoc สำหรับการขุดลึกยิ่งขึ้น โปรดดูคู่มือ CLI โดยการรัน wp help site-info
คุณจะได้รับรายการและคำอธิบายของคำสั่งย่อยของเรา และถ้าคุณดูในโค้ด คุณจะเห็นว่ามันมาจากไหน อธิบายตนเองได้ดีมาก สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับคำสั่งย่อยเวอร์ชัน ให้รัน wp help site-info version
และคุณจะได้รับรายละเอียดเกี่ยวกับตัวเลือกด้วย
แม้ว่าจะไม่ได้ใช้โดยคนจำนวนมาก แต่ @wpcli มักถูกใช้โดยผู้ที่กำหนดอนาคตของ #WordPress & ความคิดเห็นของผู้ใช้จำนวนมาก การเพิ่ม CLI ให้กับปลั๊กอินของคุณอาจเป็นการเคลื่อนไหวที่ชาญฉลาด
คลิกเพื่อทวีตทำให้ผู้ใช้ของคุณมีความสุข
แน่นอนว่า หากคุณกำลังพัฒนาวิดเจ็ตสภาพอากาศที่เพิ่มการรองรับ WP-CLI ดูเหมือนจะไม่ใช่วิธีที่ถูกต้อง อย่างไรก็ตาม เครื่องมือใดๆ ที่ใช้โดย devs และผู้ดูแลระบบ die-hard เช่น WP Reset จะได้รับประโยชน์อย่างมากจาก WP-CLI ผู้ใช้จะสามารถใช้คำสั่งลูกโซ่ เขียนสคริปต์ทุบตี และทำสิ่งต่างๆ ให้เสร็จได้เร็วและง่ายขึ้น นั่นนำไปสู่การรีวิวที่ดีขึ้น ผู้ใช้ที่มีความสุขมากขึ้น ผู้ใช้มากขึ้นและในที่สุด เงินก็มากขึ้นสำหรับคุณ โดยไม่คำนึงถึงรูปแบบการสร้างรายได้ที่คุณมี