คู่มือการพัฒนา WordPress Plugin แบบสมบูรณ์: สร้างฟังก์ชันที่กำหนดเองตั้งแต่เริ่มต้นจนสำเร็จ

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

การเตรียมการและการตั้งค่าสภาพแวดล้อม

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

การตั้งค่าสภาพแวดล้อมการพัฒนาท้องถิ่น

แนะนำให้ใช้ชุดสภาพแวดล้อมเซิร์ฟเวอร์ท้องถิ่น เช่น Local by Flywheel, XAMPP หรือ MAMP เครื่องมือเหล่านี้สามารถติดตั้ง Apache, MySQL และ PHP ได้ในคลิกเดียว เพื่อจำลองสภาพแวดล้อมเซิร์ฟเวอร์ออนไลน์ได้อย่างสมบูรณ์ โปรดตรวจสอบให้แน่ใจว่าเวอร์ชัน PHP ของคุณตรงกับข้อกำหนดของเวอร์ชัน WordPress ที่กำหนด โดยทั่วไปแนะนำให้ใช้ PHP 7.4 หรือสูงกว่าเพื่อประสิทธิภาพและความปลอดภัยที่ดีขึ้น

การเลือกตัวแก้ไขโค้ดและเครื่องมือ

ตัวแก้ไขโค้ดที่มีประสิทธิภาพสูงเป็นสิ่งสำคัญอย่างยิ่ง Visual Studio Code, PhpStorm หรือ Sublime Text ล้วนเป็นตัวเลือกที่ยอดเยี่ยม โดยมีคุณสมบัติเช่นการเน้นไวยากรณ์ คำแนะนำโค้ด และการดีบัก นอกจากนี้การติดตั้ง Git ซึ่งเป็นเครื่องมือควบคุมเวอร์ชัน ถือเป็นมาตรฐานอุตสาหกรรมสำหรับการจัดการการเปลี่ยนแปลงโค้ด การทำงานร่วมกันเป็นทีม และการสำรองข้อมูล

แนะนำให้อ่าน คู่มือขั้นสูงสุดสำหรับการพัฒนา WordPress Plugins: เส้นทางสู่ความเชี่ยวชาญตั้งแต่พื้นฐานจนถึงการปฏิบัติจริง

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

ส่วนที่สำคัญที่สุดของปลั๊กอิน WordPress คือไฟล์หลัก ไฟล์นี้ไม่เพียงแต่มีโค้ดการทำงานของปลั๊กอิน แต่ยังประกาศข้อมูลเมตาของปลั๊กอินไปยังระบบ WordPress ผ่านความคิดเห็นส่วนหัวไฟล์เฉพาะ

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
 */

คำอธิบายนี้บอกให้ WordPress แสดงชื่อปลั๊กอิน คำอธิบาย และข้อมูลอื่นๆ ในหน้า “ปลั๊กอิน” ของแอดมิน โดยที่ Text Domain ใช้สำหรับการทำให้เป็นสากล เพื่อเตรียมพร้อมสำหรับงานแปลในอนาคต

เปิดใช้งานและปิดการทำงานปลั๊กอิน

หลังจากสร้างไฟล์หลักแล้ว คุณต้องนำไปวางในไดเรกทอรีการติดตั้ง WordPress ภายใต้โฟลเดอร์ /wp-content/plugins/ คุณสามารถวางแยกต่างหาก หรือสร้างไดเรกทอรีเฉพาะสำหรับมัน (เช่น /wp-content/plugins/my-first-plugin/), แล้วนำไฟล์หลักวางไว้ในนั้น หลังจากเสร็จสิ้น ให้เข้าสู่ระบบ WordPress แดชบอร์ด ไปที่หน้า “ปลั๊กอิน” คุณจะเห็นปลั๊กอินใหม่และสามารถคลิก “เปิดใช้งาน” ได้

เข้าใจกลไกหลักของ WordPress: ฮุคและตัวกรอง

ความแข็งแกร่งและความยืดหยุ่นของ WordPress ส่วนใหญ่มาจากระบบ “ฮุค (Hooks)” ของมัน ปลั๊กอินสามารถ “ติดตั้ง” เข้ากับฮุคเหล่านี้เพื่อเปลี่ยนหรือเพิ่มพฤติกรรมของ WordPress โดยไม่ต้องแก้ไขโค้ดหลัก

แนะนำให้อ่าน การวิเคราะห์เชิงลึกเกี่ยวกับการพัฒนา WordPress Plugin: สร้างส่วนขยายฟังก์ชันที่กำหนดเองตั้งแต่เริ่มต้น

การใช้ฮุคแอ็กชัน

ฮุคแอกชัน (Action Hooks) อนุญาตให้คุณรันโค้ดที่กำหนดเองในจุดเวลาที่เฉพาะเจาะจง เช่น เมื่อโพสต์ถูกเผยแพร่ เมื่อผู้ใช้เข้าสู่ระบบ หรือเมื่อหน้าแดชบอร์ดโหลด ใช้ add_action() ฟังก์ชันเพื่อติดตั้งฟังก์ชันของคุณเข้ากับฮุคที่ระบุ

ตัวอย่างต่อไปนี้แสดงวิธีการเพิ่มข้อความที่กำหนดเองที่ด้านล่างของหน้าเว็บไซต์ เราใช้ wp_footer Action Hook นี้

function myplugin_add_footer_text() {
    echo '<p style="text-align:center;">ขอบคุณที่ใช้บริการเว็บไซต์ของเรา</p>';
}
add_action( 'wp_footer', 'myplugin_add_footer_text' );

การใช้ตัวกรอง

ตัวกรอง (Filters) ใช้สำหรับการปรับเปลี่ยนข้อมูลที่สร้างขึ้นในระหว่างกระบวนการ ต่างจากการกระทำ ตัวกรองต้องรับค่าอินพุตและต้องส่งคืนค่าที่ถูกแก้ไขแล้ว ใช้ add_filter() ฟังก์ชันเพื่อใช้ตัวกรอง

hosting.com 共享主机
高性能,配备 AMD EPYC CPU、NVMe SSD 存储和 LiteSpeed,全天候24小时、全天候的专家内部支持,高级安全措施,包括 SSL、暴力破解、恶意软件和 DDoS 防护,节省高达 73%

ตัวอย่างเช่น รหัสต่อไปนี้แก้ไขเนื้อหาที่แสดงที่ส่วนท้ายของหัวข้อบทความ โดยเพิ่มคำต่อท้ายให้กับทุกหัวข้อ เราใช้ the_title ฟิลเตอร์นี้

function myplugin_modify_title( $title ) {
    // 确保只在主循环中修改
    if ( is_single() ) {
        return $title . ' [推荐阅读]';
    }
    return $title;
}
add_filter( 'the_title', 'myplugin_modify_title' );

เพิ่มหน้าการตั้งค่าสำหรับปลั๊กอิน

ปลั๊กอินที่สมบูรณ์มักต้องการให้ตัวเลือกการกำหนดค่าสำหรับผู้ใช้ ใน WordPress การสร้างหน้าการตั้งค่าสำหรับปลั๊กอินมีวิธีการที่เป็นมาตรฐาน ซึ่งสามารถเพิ่มไปยังตำแหน่งต่างๆ ในเมนูหลังบ้านได้

สร้างรายการเมนูการจัดการ

ขั้นแรก, คุณจำเป็นต้องใช้ add_action( ‘admin_menu’, … ) ใช้ hook เพื่อลงทะเบียนหน้าเมนูใหม่ WordPress มีฟังก์ชันหลายอย่างสำหรับการเพิ่มเมนูในระดับต่างๆ เช่น add_menu_page()(เมนูระดับบนสุด) หรือ add_options_page()(เพิ่มลงในเมนูย่อย “การตั้งค่า”)

แนะนำให้อ่าน คู่มือการพัฒนา WordPress Plugin ฉบับสมบูรณ์: จากเริ่มต้นสู่ขั้นสูงเพื่อสร้างปลั๊กอินฟังก์ชัน

โค้ดด้านล่างสาธิตวิธีการสร้างหน้าเมนูระดับบนสุดแบบง่าย ฟังก์ชัน myplugin_settings_page_html รับผิดชอบในการแสดงผลเนื้อหา HTML ของหน้านั้น

function myplugin_add_menu() {
    add_menu_page(
        ‘我的插件设置’,          // 页面标题
        ‘我的插件’,             // 菜单标题
        ‘manage_options’,      // 所需权限
        ‘myplugin’,            // 菜单 Slug
        ‘myplugin_settings_page_html’, // 回调函数
        ‘dashicons-admin-generic’, // 图标(可选)
        20                     // 位置(可选)
    );
}
add_action( ‘admin_menu’, ‘myplugin_add_menu’ );

function myplugin_settings_page_html() {
    // 检查用户权限
    if ( ! current_user_can( ‘manage_options’ ) ) {
        return;
    }
    ?&gt;
    <div class="“wrap”">
        <h1><?php echo esc_html( get_admin_page_title() ); ?></h1>
        <form action="/th/“options.php”/" method="“post”" data-trp-original-action="“options.php”">
            <?php
            // 输出设置字段
            settings_fields( ‘myplugin_options’ );
            do_settings_sections( ‘myplugin’ );
            submit_button( ‘保存设置’ );
            ?>
        <input type="hidden" name="trp-form-language" value="th"/></form>
    </div>
    &lt;?php
}

ลงทะเบียนการตั้งค่า, ฟิลด์ และส่วน

เพื่อให้แบบฟอร์มข้างต้นสามารถเก็บข้อมูลได้ คุณจำเป็นต้องใช้ WordPress Settings API ซึ่งรวมถึงการ register_setting() ลงทะเบียนกลุ่มการตั้งค่าด้วย add_settings_section() เพิ่มส่วนด้วย และ add_settings_field() เพิ่มฟิลด์เฉพาะด้วย

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

กระบวนการนี้มักจะเสร็จสิ้นใน admin_init ฮุก การตั้งค่า API จะจัดการการตรวจสอบข้อมูล การจัดเก็บ (ไปยัง wp_options ตาราง) และความปลอดภัย (การตรวจสอบ Nonce) โดยอัตโนมัติ ซึ่งช่วยลดความซับซ้อนในการพัฒนาได้อย่างมาก

สรุป

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

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

การพัฒนา Plugin ต้องใช้พื้นฐานการเขียนโปรแกรมอะไรบ้าง

คุณต้องมีความรู้พื้นฐาน PHP ที่แข็งแกร่ง เนื่องจาก WordPress Core และ Plugin ส่วนใหญ่เขียนด้วย PHP พร้อมกันนี้ การมีความรู้พื้นฐานเกี่ยวกับ HTML, CSS และ JavaScript (โดยเฉพาะ jQuery เนื่องจากโค้ดเดิมของ WordPress ใช้ jQuery อย่างแพร่หลาย) เป็นสิ่งจำเป็น ซึ่งจะช่วยให้คุณจัดการกับการแสดงผลและปฏิสัมพันธ์ส่วนหน้าได้ การเข้าใจแนวคิดพื้นฐานเกี่ยวกับการทำงานกับฐานข้อมูล MySQL ก็จะเป็นประโยชน์เช่นกัน

จะหลีกเลี่ยงความขัดแย้งระหว่างชื่อฟังก์ชันของ Plugin กับ Plugin อื่นได้อย่างไร

แนวทางปฏิบัติที่ดีที่สุดในการหลีกเลี่ยงความขัดแย้งคือการใช้คำนำหน้าที่ไม่ซ้ำใครในการตั้งชื่อฟังก์ชัน คลาส ค่าคงที่ และตัวแปรทั้งหมดของคุณ คำนำหน้านี้ควรมีความเฉพาะตัวเพียงพอ โดยทั่วไปจะเกี่ยวข้องกับชื่อหรือตัวย่อของ Plugin ของคุณ ตัวอย่างเช่น หาก Plugin ของคุณชื่อว่า “Awesome Widget” คุณสามารถใช้คำนำหน้าเช่น aw_awesome_widget_AW_ 作为前缀。将代码封装在类(Class)中也是现代 WordPress 插件开发中广泛采用的、更优雅的避免冲突和组织代码的方式。

ปลั๊กอินควรเก็บไว้ในไดเรกทอรีใด

ไฟล์ปลั๊กอินควรเก็บไว้ในไดเรกทอรีการติดตั้ง WordPress ภายใต้โฟลเดอร์ /wp-content/plugins/ สำหรับปลั๊กอินไฟล์เดียวแบบง่าย ๆ สามารถวางไฟล์ PHP หลักไว้ในไดเรกทอรีนี้โดยตรง สำหรับปลั๊กอินที่ซับซ้อนมากขึ้น ขอแนะนำอย่างยิ่งให้สร้างไดเรกทอรีย่อยแยกต่างหากที่ตั้งชื่อตามปลั๊กอิน (เช่น /wp-content/plugins/my-awesome-plugin/), จากนั้นจัดระเบียบไฟล์ปลั๊กอินทั้งหมด (PHP, CSS, JS, รูปภาพ ฯลฯ) ไว้ในไดเรกทอรีย่อยนี้ ซึ่งทำให้การจัดการไฟล์เป็นระเบียบและชัดเจน

วิธีการเพิ่มการสนับสนุนการแปลให้กับปลั๊กอิน

การเพิ่มการสนับสนุนสากล (i18n) ให้กับปลั๊กอินเกี่ยวข้องกับขั้นตอนหลักดังต่อไปนี้ ประการแรก ตั้งค่าให้ถูกต้องในความคิดเห็นส่วนหัวของปลั๊กอิน Text Domainและใช้ฟังก์ชันการแปลของ WordPress เช่น ()_e()esc_html() ในการห่อหุ้มสตริงทั้งหมดที่ต้องการแปล จากนั้น ใช้เครื่องมือเช่น Poedit เพื่อแยกสตริงเหล่านี้ สร้าง .pot ไฟล์เทมเพลต และสร้างไฟล์แปลภาษาที่สอดคล้องกัน .po.mo ไฟล์แปลภาษา สุดท้าย ใช้ในระหว่างการเริ่มต้นปลั๊กอิน load_plugin_textdomain() ฟังก์ชันสำหรับโหลดการแปล