คู่มือเริ่มต้นการพัฒนาปลั๊กอิน WordPress: สร้างปลั๊กอินที่กำหนดเองตัวแรกของคุณตั้งแต่เริ่มต้น

อ่านใน 2 นาที
2026-03-12
2026-06-03
2,183
I earn commissions when you shop through the links below, at no additional cost to you.

การเตรียมสภาพแวดล้อมการพัฒนา WordPress Plugin

ก่อนที่จะเริ่มเขียนโค้ด คุณจำเป็นต้องมีสภาพแวดล้อมการพัฒนาท้องถิ่นที่เหมาะสม ขอแนะนำอย่างยิ่งว่าอย่าใช้เซิร์ฟเวอร์ผลิตจริงออนไลน์ในการพัฒนา plugin โดยตรง สภาพแวดล้อมการพัฒนา WordPress ทั่วไปประกอบด้วยซอฟต์แวร์เซิร์ฟเวอร์ท้องถิ่น (เช่น XAMPP, MAMP, Local by Flywheel หรือ Docker), ตัวแก้ไขโค้ด (เช่น VS Code, PHPStorm) และการติดตั้ง WordPress ใหม่ทั้งหมด

คุณต้องแน่ใจว่าสเวอร์ชัน PHP ของคุณตรงตามข้อกำหนดของเวอร์ชัน WordPress ที่กำหนดเป้าหมาย โดยทั่วไปแล้ว WordPress core จะเข้ากันได้กับหลายเวอร์ชันของ PHP สำหรับการพัฒนา plugin แนะนำให้ใช้ PHP 7.4 หรือเวอร์ชันที่สูงกว่า เพื่อให้สามารถใช้ไวยากรณ์และคุณสมบัติที่ทันสมัยมากขึ้น ในขณะเดียวกัน คุณจำเป็นต้องเปิดใช้งานWP_DEBUGโหมดในแอดมินของ WordPress ซึ่งจะช่วยให้คุณระบุข้อผิดพลาดได้อย่างรวดเร็วในระหว่างกระบวนการพัฒนา ภายในของคุณwp-config.phpในไฟล์ ให้ค้นหาและตั้งค่าค่าคงที่ต่อไปนี้:

define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );

การตั้งค่านี้จะบันทึกข้อความผิดพลาดลงใน/wp-content/debug.logไฟล์ โดยไม่แสดงบนหน้าเว็บโดยตรงซึ่งอาจส่งผลต่อประสบการณ์ผู้ใช้หน้าเว็บ นี่คือแนวทางปฏิบัติที่ดีที่สุด

แนะนำให้อ่าน จากศูนย์ถึงหนึ่ง: คู่มือและบทเรียนการพัฒนา WordPress Plugin ที่ครอบคลุม

สร้างไฟล์ปลั๊กอินแรกของคุณ

ปลั๊กอิน WordPress ทั้งหมดจะถูกเก็บไว้ใน/wp-content/plugins/ไดเรกทอรี โดยปกติแล้วแต่ละปลั๊กอินจะมีโฟลเดอร์แยกต่างหาก ชื่อโฟลเดอร์ควรกระชับและสะท้อนถึงฟังก์ชันการทำงานของปลั๊กอินได้ ตอนนี้ เรามาสร้างปลั๊กอินแรกกัน

UltaHost WordPress โฮสติ้ง
การรับประกันคืนเงินภายใน 30 วัน, แบนด์วิธและฐานข้อมูลไม่จำกัด, การป้องกัน DDoS ฟรี, ซื้อ 3 ปีลดราคา 50%

เขียนไฟล์หลักของปลั๊กอิน

ภายในโฟลเดอร์ปลั๊กอินของคุณ คุณต้องสร้างไฟล์ PHP หลัก ชื่อไฟล์นี้มักจะตรงกับชื่อโฟลเดอร์ เช่นmy-first-plugin.phpไฟล์นี้คือจุดเริ่มต้นของปลั๊กอิน ซึ่งต้องมีส่วนหัวของปลั๊กอินที่เฉพาะเจาะจง WordPress จะอ่านข้อมูลเมต้านี้เพื่อแสดงปลั๊กอินของคุณในหน้าการจัดการปลั๊กอินในแอดมิน

<?php
/**
 * Plugin Name:       我的第一个定制插件
 * Plugin URI:        https://example.com/my-first-plugin
 * Description:       这是一个学习WordPress插件开发的入门示例插件。
 * Version:           1.0.0
 * Author:            你的名字
 * Author URI:        https://example.com
 * License:           GPL v2 or later
 * Text Domain:       my-first-plugin
 * Domain Path:       /languages
 */

หลังจากบันทึกไฟล์นี้แล้ว คุณจะเห็นมันในหน้า “ปลั๊กอิน” ในแอดมินของ WordPress คุณสามารถเปิดใช้งานมันได้ แม้ว่ามันจะยังไม่มีฟังก์ชันการทำงานจริง แต่นี่เป็นจุดสำคัญหนึ่ง ส่วนหัวของปลั๊กอินText DomainDomain Pathใช้สำหรับการแปลและปรับให้เป็นท้องถิ่น เพื่อเตรียมพร้อมสำหรับการเผยแพร่ปลั๊กอินในอนาคต

ความปลอดภัยพื้นฐานและโครงสร้างของปลั๊กอิน

ความปลอดภัยเป็นสิ่งสำคัญอันดับแรกในการพัฒนาปลั๊กอิน วิธีพื้นฐานที่สุดคือการป้องกันการเข้าถึงไฟล์ปลั๊กอินของคุณโดยตรง เราสามารถทำได้โดยเพิ่มการตรวจสอบการเข้าถึงโดยตรงที่ด้านบนของไฟล์ แก้ไขไฟล์หลักของคุณ เพิ่มโค้ดต่อไปนี้หลังจากความคิดเห็นส่วนหัวของปลั๊กอิน:

// 防止直接文件访问
if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

โค้ดนี้ตรวจสอบว่าค่าคงที่ABSPATHถูกกำหนดไว้หรือไม่ หากไม่ถูกกำหนด (หมายถึงมีคนพยายามเข้าถึงไฟล์ PHP นี้โดยตรงผ่าน URL) การทำงานของสคริปต์จะถูกหยุด นี่คือมาตรการความปลอดภัยที่ปลั๊กอิน WordPress ที่มีคุณภาพทุกตัวควรมี

แนะนำให้อ่าน คู่มือการพัฒนา WordPress Plugins ฉบับสมบูรณ์: บทเรียนปฏิบัติจริงตั้งแต่พื้นฐานจนถึงการเผยแพร่

เพิ่มฟังก์ชันหลักให้กับปลั๊กอิน

หน้าที่ของปลั๊กอินคือการขยายความสามารถของ WordPress ให้เรามาเรียนรู้วิธีเพิ่มฟังก์ชันผ่านสองตัวอย่างง่ายๆ: การสร้างหน้าจัดการและการเพิ่มเนื้อหาที่ด้านหน้า

เพิ่มเมนูจัดการอย่างง่าย

ขั้นแรก เราจะเรียนรู้วิธีเพิ่มหน้าเมนูสำหรับปลั๊กอินของเราในส่วนติดต่อผู้ดูแลระบบด้านหลัง ซึ่งต้องใช้ระบบ “Hook” ของ WordPress โดยเฉพาะadmin_menuAction hooks.

เราเพิ่มฟังก์ชันในไฟล์ปลั๊กอินหลัก เช่นmfp_add_admin_menuจากนั้นใช้ฟังก์ชันadd_actionเพื่อเชื่อมต่อมันเข้ากับadmin_menuบนฮุค

hosting.com 共享主机
高性能,配备 AMD EPYC CPU、NVMe SSD 存储和 LiteSpeed,全天候24小时、全天候的专家内部支持,高级安全措施,包括 SSL、暴力破解、恶意软件和 DDoS 防护,节省高达 73%
function mfp_add_admin_menu() {
    add_menu_page(
        '我的插件设置',          // 页面标题
        '我的插件',             // 菜单标题
        'manage_options',       // 权限要求
        'my-first-plugin',      // 菜单Slug
        'mfp_admin_page_html',  // 用于渲染页面内容的回调函数
        'dashicons-admin-generic', // 图标(使用Dashicons)
        30                      // 菜单位置
    );
}
add_action( 'admin_menu', 'mfp_add_admin_menu' );

ต่อไป เราต้องกำหนดฟังก์ชัน callback ที่ใช้ด้านบนmfp_admin_page_htmlเพื่อแสดงเนื้อหา HTML ของหน้า นี่คือตัวอย่างที่ง่ายที่สุด:

function mfp_admin_page_html() {
    // 再次检查用户权限
    if ( ! current_user_can( 'manage_options' ) ) {
        return;
    }
    ?&gt;
    <div class="wrap">
        <h1><?php echo esc_html( get_admin_page_title() ); ?></h1>
        <p>สวัสดีชาวโลก! นี่คือหน้าแรกของการจัดการปลั๊กอินของฉัน</p>
    </div>
    &lt;?php
}

ตอนนี้ รีเฟรชแอดมิน WordPress ของคุณ คุณควรจะเห็นเมนูใหม่ “ปลั๊กอินของฉัน” ในแถบนำทางด้านซ้าย

เพิ่มข้อความที่ด้านล่างของหน้าการทำงานส่วนหน้า

นอกจากการจัดการแบ็กเอนด์แล้ว เรามักจะต้องแก้ไขฟรอนต์เอนด์บ่อยกว่า ตัวอย่างเช่น เราต้องการเพิ่มข้อมูลลิขสิทธิ์ที่ด้านล่างของบทความและหน้าทั้งหมด ครั้งนี้เราใช้the_contentฟิลเตอร์ฮุค

แนะนำให้อ่าน คู่มือเริ่มต้นการพัฒนา WordPress Plugin: สร้างส่วนขยายฟังก์ชันแรกของคุณตั้งแต่เริ่มต้น

ฟิลเตอร์ฮุค (Filter Hook) ช่วยให้คุณสามารถปรับเปลี่ยนข้อมูลที่ส่งผ่านไปยังฟังก์ชันได้ เราจะสร้างฟังก์ชันmfp_add_footer_textมันรับเนื้อหาบทความเป็นพารามิเตอร์และเพิ่มข้อความของเราเองต่อท้าย

function mfp_add_footer_text( $content ) {
    // 仅对主循环中的单篇文章和页面生效
    if ( is_single() &amp;&amp; in_the_loop() &amp;&amp; is_main_query() ) {
        $footer_text = '<p><em>บทความนี้ได้รับการสนับสนุนจากปลั๊กอินแรกของฉัน</em></p>';
        $content .= $footer_text;
    }
    return $content;
}
add_filter( 'the_content', 'mfp_add_footer_text' );

โค้ดนี้ตรวจสอบก่อนว่าสภาพแวดล้อมปัจจุบันเป็นบทความเดี่ยวหรือหน้าเว็บและอยู่ในลูปการสืบค้นหลัก เพื่อหลีกเลี่ยงการเพิ่มข้อความซ้ำในที่อื่น ๆ (เช่นวิดเจ็ตหรือบทคัดย่อ) จากนั้นจึงเพิ่มย่อหน้า HTML ที่มีข้อมูลลิขสิทธิ์ต่อท้ายเนื้อหาดั้งเดิมและส่งคืน

โฮสติ้งแบบแชร์ของ InterServer
共享主机每月 $2.50 USD , 首月 $0.1 USD 优惠码 tryinterserver, 461个云应用脚本,一键安装。

การปฏิบัติขั้นสูงในการพัฒนาปลั๊กอิน

หลังจากเชี่ยวชาญพื้นฐานแล้ว การทำความเข้าใจการปฏิบัติขั้นสูงบางอย่างจะทำให้ปลั๊กอินของคุณเป็นมืออาชีพและมีเสถียรภาพมากขึ้น

ตัวเลือกปลั๊กอินที่สามารถกำหนดค่าได้

ปลั๊กอินที่พัฒนาอย่างเต็มที่มักจะต้องอนุญาตให้ผู้ใช้กำหนดค่าได้ WordPress มี API การตั้งค่าเพื่อทำให้กระบวนการสร้างหน้าตัวเลือกง่ายขึ้น ซึ่งเกี่ยวข้องกับการลงทะเบียนการตั้งค่า การเพิ่มฟิลด์การตั้งค่า และส่วนการตั้งค่า ถึงแม้ว่าจะซับซ้อนกว่าการเพิ่มหน้าเมนูโดยตรง แต่มันสามารถจัดการความปลอดภัย (เช่น การตรวจสอบ Nonce) และการบันทึกข้อมูลฟอร์มโดยอัตโนมัติ

โดยทั่วไป เราจะจัดเก็บตัวเลือกปลั๊กอินในรูปแบบอาร์เรย์ลงในตารางwp_optionsของ WordPress คุณสามารถใช้add_option()get_option()update_option()ฟังก์ชั่นสำหรับจัดการข้อมูลปลั๊กอินของคุณ

ใช้คลาสเพื่อจัดระเบียบโค้ดปลั๊กอิน

เมื่อฟังก์ชันการทำงานของปลั๊กอินเพิ่มขึ้น การวางฟังก์ชันทั้งหมดในเนมสเปซโกลบอลอาจทำให้เกิดการชนกันของชื่อฟังก์ชันได้ง่าย วิธีปฏิบัติที่ดีที่สุดคือการใช้คลาส PHP เพื่อห่อหุ้มฟังก์ชันการทำงานของปลั๊กอินของคุณ ซึ่งไม่เพียงช่วยจัดระเบียบโค้ดได้ดีขึ้น แต่ยังสามารถใช้คุณสมบัติเชิงวัตถุ เช่น การโหลดอัตโนมัติ เนมสเปซ (หากคุณใช้ PHP 5.3+) และการห่อหุ้มที่ดีกว่า

ไฟล์หลักของปลั๊กอินที่ใช้คลาสอาจมีลักษณะดังนี้:

if ( ! defined( 'ABSPATH' ) ) exit;

class My_First_Plugin {
    public function __construct() {
        // 在构造函数中挂载所有钩子
        add_action( 'admin_menu', array( $this, 'add_admin_menu' ) );
        add_filter( 'the_content', array( $this, 'add_footer_text' ) );
    }

public function add_admin_menu() { /* ... */ }
    public function add_footer_text( $content ) { /* ... */ }
}

// 初始化插件
new My_First_Plugin();

วิธีนี้รวบรวมวิธีการที่เกี่ยวข้องทั้งหมดไว้ในคลาสเดียว ซึ่งช่วยเพิ่มความสามารถในการบำรุงรักษาโค้ดได้อย่างมาก

สรุป

คู่มือนี้นำคุณผ่านขั้นตอนการสร้างปลั๊กอิน WordPress ที่กำหนดเองตั้งแต่เริ่มต้น คุณได้เรียนรู้วิธีตั้งค่าแวดล้อม สร้างโครงสร้างไฟล์ปลั๊กอินที่ปลอดภัย ใช้ action hooks และ filter hooks เพื่อขยายการจัดการ backend และการแสดงผล frontend ตามลำดับ และเข้าใจแนวคิดของการปฏิบัติขั้นสูง เช่น การเขียนโปรแกรมเชิงวัตถุและ Settings API ใจกลางของการพัฒนาปลั๊กอินอยู่ที่การเข้าใจระบบ hooks ของ WordPress ซึ่งมีจุดเชื่อมต่อนับไม่ถ้วนที่ช่วยให้คุณสามารถปรับเปลี่ยนพฤติกรรมของแพลตฟอร์มได้โดยไม่ต้องแก้ไขโค้ดหลัก การฝึกฝนอย่างต่อเนื่อง เริ่มจากการเขียนฟังก์ชันเล็กๆ แล้วค่อยๆ สร้างปลั๊กอินที่ซับซ้อนขึ้น เป็นเส้นทางที่ดีที่สุดในการเชี่ยวชาญทักษะนี้

คำถามที่พบบ่อย (FAQ)

### การพัฒนาปลั๊กอินต้องใช้พื้นฐาน PHP แค่ไหน
คุณต้องเข้าใจไวยากรณ์พื้นฐานของ PHP เช่น ตัวแปร อาร์เรย์ ฟังก์ชัน การตัดสินใจแบบมีเงื่อนไข และลูป ที่สำคัญกว่านั้นคือต้องเข้าใจวิธีการโต้ตอบกับ API ของ WordPress เช่น วิธีใช้ hooks (add_action, add_filter) และฟังก์ชัน WordPress ทั่วไป ความรู้เกี่ยวกับการเขียนโปรแกรมเชิงวัตถุ (OOP) จะมีประโยชน์อย่างมากในการพัฒนาปลั๊กอินที่ซับซ้อน

จะดีบัก plugin ที่พัฒนาขึ้นเองได้อย่างไร?

เปิดใช้งานWP_DEBUGโหมดเป็นขั้นตอนที่สำคัญที่สุด ดูwp-content/debug.logบันทึกข้อผิดพลาดในไฟล์ นอกจากนี้คุณสามารถใช้var_dump()error_log()ในโค้ดเพื่อแสดงข้อมูลการดีบัก ตัวอย่างเช่นerror_log( print_r( $variable, true ) );สามารถบันทึกเนื้อหาของตัวแปรใดๆ ลงใน debug.log การใช้ปลั๊กอินดีบักมืออาชีพอย่าง Query Monitor ก็ช่วยเพิ่มประสิทธิภาพได้อย่างมาก

ฉันสามารถใช้ไลบรารี PHP ของบุคคลที่สามในปลั๊กอินได้หรือไม่?

ได้ แต่ต้องจัดการอย่างระมัดระวัง เพื่อหลีกเลี่ยงความขัดแย้งของเวอร์ชันกับไลบรารีที่ใช้โดยปลั๊กอินหรือธีมอื่น แนะนำให้ใช้เครื่องมือจัดการการอ้างอิง PHP คือ Composer และใช้ความสามารถในการโหลดอัตโนมัติของมัน เมื่อแพ็คเกจและเผยแพร่ปลั๊กอิน คุณสามารถเลือกที่จะรวมไฟล์ไลบรารีไว้ในปลั๊กอินของคุณ (ระวังเรื่องการปฏิบัติตามใบอนุญาตของไลบรารี) หรือขอให้ผู้ใช้ติดตั้งการอ้างอิงนั้นบนเซิร์ฟเวอร์ด้วยตนเอง

หลังจากพัฒนาสิ้นสุดแล้วจะเผยแพร่ปลั๊กอินไปยังไดเรกทอรีทางการของ WordPress ได้อย่างไร?

คุณต้องไปที่ WordPress.org เพื่อส่งปลั๊กอินของคุณให้ตรวจสอบ รหัสปลั๊กอินของคุณต้องเป็นไปตามมาตรฐานและแนวทางทางการ เช่น ต้องมีความปลอดภัย และรองรับหลายภาษา (ใช้__()_e()ที่ครอบคลุมreadme.txtไฟล์ หลังจากตรวจสอบแล้วปลั๊กอินของคุณจะสามารถถูกค้นหาและติดตั้งโดยผู้ใช้ทั่วโลกได้