การเตรียมการและการตั้งค่าสภาพแวดล้อม
ก่อนเริ่มเขียนโค้ด คุณต้องมีสภาพแวดล้อมการพัฒนาที่เหมาะสม ซึ่งรวมถึงการติดตั้ง WordPress ในเครื่องและโปรแกรมแก้ไขโค้ด ขอแนะนำให้ใช้เครื่องมืออย่างเช่น XAMPP, MAMP, Local by Flywheel หรือ Laragon เพื่อตั้งค่าเซิร์ฟเวอร์ในเครื่องอย่างรวดเร็ว ตรวจสอบให้แน่ใจว่าสภาพแวดล้อมของคุณใช้ PHP เวอร์ชันที่ค่อนข้างใหม่ (แนะนำ 7.4 ขึ้นไป) และ MySQL/MariaDB
ต่อไป คุณต้องเข้าใจโครงสร้างพื้นฐานของปลั๊กอิน WordPress ไฟล์หลักที่สำคัญที่สุดของปลั๊กอินคือไฟล์ PHP หลัก ซึ่งชื่อไฟล์และชื่อไดเรกทอรีสามารถกำหนดเองได้ แต่ต้องมีคอมเมนต์ส่วนหัวปลั๊กอินเฉพาะ เพื่อประกาศปลั๊กอินของคุณให้ WordPress ทราบ คุณสามารถสร้างไดเรกทอรีใหม่ในไดเรกทอรีการติดตั้ง WordPress wp-content/plugins wp-content/plugins my-first-plugin。
ภายในไดเรกทอรีนี้ สร้างไฟล์ปลั๊กอินหลักของคุณ เช่น ตั้งชื่อเป็น my-first-plugin.phpไฟล์นี้ต้องเริ่มต้นด้วยความคิดเห็นข้อมูลปลั๊กอินมาตรฐาน
แนะนำให้อ่าน คู่มือเริ่มต้นการพัฒนาปลั๊กอิน WordPress: สร้างส่วนขยายฟังก์ชันที่กำหนดเองชิ้นแรกของคุณตั้งแต่เริ่มต้น。
สร้างไฟล์ปลั๊กอินแรกของคุณ
ตอนนี้ มาสร้างโครงสร้างพื้นฐานของปลั๊กอินกัน ในไดเรกทอรีปลั๊กอินของคุณ เปิดไฟล์ PHP หลักและเขียนข้อมูลส่วนหัวมาตรฐานของปลั๊กอินดังต่อไปนี้
<?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 ใช้ในการระบุปลั๊กอิน โดยPlugin Name เป็นข้อมูลที่ต้องระบุ ส่วนอื่นๆ เป็นตัวเลือก หลังจากบันทึกไฟล์แล้ว คุณจะเห็นปลั๊กอินใหม่นี้ในหน้า “ปลั๊กอิน” ของแผงควบคุม WordPress และสามารถเปิดใช้งานได้ ปัจจุบันยังไม่มีฟังก์ชันการทำงานใดๆ
เพิ่มฟังก์ชันง่ายๆ ให้กับปลั๊กอิน
ฟังก์ชันที่ง่ายที่สุดคือการเพิ่มเมนูการจัดการที่กำหนดเองในแอดมินของเว็บไซต์ เราจะใช้ add_action ฟังก์ชันถูกติดตั้งบน admin_menu action hook นี้
ในไฟล์ปลั๊กอินหลัก หลังจากบล็อกความคิดเห็น ให้เพิ่มโค้ดต่อไปนี้:
// 在管理菜单中添加一个顶级菜单
function mfp_add_admin_menu() {
add_menu_page(
'我的第一个插件设置', // 页面标题
'我的插件', // 菜单标题
'manage_options', // 权限要求
'my-first-plugin', // 菜单 slug
'mfp_settings_page', // 回调函数,用于输出页面内容
'dashicons-admin-generic', // 图标(可选)
6 // 菜单位置(可选)
);
}
add_action('admin_menu', 'mfp_add_admin_menu');
// 定义设置页面的回调函数
function mfp_settings_page() {
?>
<div class="wrap">
<h1><?php echo esc_html(get_admin_page_title()); ?></h1>
<p>ยินดีต้อนรับสู่หน้าการตั้งค่าปลั๊กอินแรกของฉัน!</p>
<form method="post" action="/th/options.php/" data-trp-original-action="options.php">
<?php
// 后续可以在这里添加设置字段
?>
<p class="submit">
<input type="submit" name="submit" id="submit" class="button button-primary" value="บันทึกการเปลี่ยนแปลง">
</p>
<input type="hidden" name="trp-form-language" value="th"/></form>
</div>
<?php
} โค้ดนี้สร้างเมนูระดับบนสุดใหม่ชื่อ “ปลั๊กอินของฉัน” เมื่อคลิกจะนำไปยังหน้าการตั้งค่าที่เรียบง่าย ที่นี่เราใช้ add_menu_page ฟังก์ชันเพื่อลงทะเบียนเมนู และกำหนดฟังก์ชันคอลแบ็ก mfp_settings_page เพื่อเรนเดอร์เนื้อหาของหน้า
แนะนำให้อ่าน คู่มือเริ่มต้นการพัฒนา WordPress Plugin: สร้างปลั๊กอินฟังก์ชันแรกของคุณตั้งแต่ศูนย์จนสำเร็จ。
ใช้ฮุกและตัวกรองเพื่อขยายฟังก์ชันการทำงาน
ความแข็งแกร่งหลักของ WordPress อยู่ที่สถาปัตยกรรมปลั๊กอิน ซึ่งทำงานผ่านฮุกแอ็กชันและฮุกตัวกรองเป็นหลัก ฮุกแอ็กชันอนุญาตให้คุณดำเนินโค้ดที่กำหนดเองในช่วงเวลาที่กำหนด ในขณะที่ฮุกตัวกรองอนุญาตให้คุณปรับเปลี่ยนข้อมูล
ใช้ action hook เพื่อเพิ่มหมายเหตุท้ายหน้า
สมมติว่าเราต้องการเพิ่มข้อความที่กำหนดเองโดยอัตโนมัติที่ท้ายบทความทั้งหมดบนเว็บไซต์ ซึ่งสามารถทำได้โดยการเชื่อมต่อกับ the_content filter hook นี้ ระวังว่าแม้ว่าชื่อจะเป็น “ตัวกรอง” แต่ the_content มักใช้สำหรับการปรับเปลี่ยนผลลัพธ์เนื้อหาบทความ
// 在文章内容末尾添加自定义文本
function mfp_append_text_to_content($content) {
// 确保只在主循环的单篇文章页面添加
if (is_single() && in_the_loop() && is_main_query()) {
$custom_text = '<p><em>บทความนี้ถูกนำเสนอโดย “ปลั๊กอินแรกของฉัน”</em></p>';
$content .= $custom_text;
}
return $content;
}
add_filter('the_content', 'mfp_append_text_to_content'); ฟังก์ชันนี้ mfp_append_text_to_content รับเนื้อหาบทความต้นฉบับ $contentหลังจากตรวจสอบเงื่อนไขบริบท (เพื่อให้แน่ใจว่าเป็นหน้าเนื้อหาแยกต่างหาก) แล้ว จะเพิ่มข้อความที่กำหนดเองลงท้ายเนื้อหา และสุดท้ายส่งคืนเนื้อหาที่แก้ไขแล้ว ผ่าน add_filter การลงทะเบียนไปยัง the_content ฮุก
สร้างตัวเลือกปลั๊กอินที่กำหนดค่าได้
ปลั๊กอินที่ใช้งานได้จริงมักต้องการตัวเลือกบางอย่างที่ผู้ใช้สามารถกำหนดค่าได้ WordPress มี API การตั้งค่าเพื่อจัดการและดูแลตัวเลือกอย่างปลอดภัย เราจะเพิ่มฟิลด์ข้อความง่ายๆ ให้กับหน้าการตั้งค่าที่มีอยู่ก่อนหน้านี้
ก่อนอื่น เราต้องลงทะเบียนการตั้งค่าและเพิ่มลงในหน้าเมนูที่มีอยู่แล้ว
// 初始化插件设置
function mfp_settings_init() {
// 注册一个新的设置到 “reading” 组(或自定义组)
register_setting('mfp_plugin_settings', 'mfp_custom_message');
// 在现有页面内添加一个设置区域
add_settings_section(
'mfp_section_id',
'自定义消息设置',
'mfp_section_callback',
'my-first-plugin'
);
// 向该区域添加一个字段
add_settings_field(
'mfp_field_id',
'页脚消息',
'mfp_field_callback',
'my-first-plugin',
'mfp_section_id'
);
}
add_action('admin_init', 'mfp_settings_init');
// 区域描述回调函数
function mfp_section_callback() {
echo '<p>กำหนดค่าข้อความที่จะแสดงที่ท้ายบทความสำหรับปลั๊กอินที่นี่</p>';
}
// 字段输出回调函数
function mfp_field_callback() {
// 从数据库中获取已保存的选项值
$message = get_option('mfp_custom_message', '本文由“我的第一个插件”为您呈现。');
echo '<input type="text" name="mfp_custom_message" value="' . esc_attr($message) . '" class="regular-text">';
echo '<p class="description">ป้อนข้อความที่คุณต้องการแสดงที่ท้ายบทความทุกบทความ</p>';
} จากนั้น จำเป็นต้องแก้ไขที่กำหนดไว้ก่อนหน้านี้ mfp_settings_page ฟังก์ชัน สำหรับแสดงฟิลด์การตั้งค่าในฟอร์ม
แนะนำให้อ่าน จากเริ่มต้นอย่างมั่นใจสู่ระดับเชี่ยวชาญ: คู่มือและบทเรียนปฏิบัติการที่สมบูรณ์สำหรับการพัฒนา WordPress Plugins。
// 更新后的设置页面回调函数
function mfp_settings_page() {
?>
<div class="wrap">
<h1><?php echo esc_html(get_admin_page_title()); ?></h1>
<form method="post" action="/th/options.php/" data-trp-original-action="options.php">
<?php
// 输出设置字段、安全随机数和设置组
settings_fields('mfp_plugin_settings');
do_settings_sections('my-first-plugin');
submit_button();
?>
<input type="hidden" name="trp-form-language" value="th"/></form>
</div>
<?php
} สุดท้าย อัปเดตฟังก์ชันที่แนบข้อความก่อนหน้านี้เพื่อใช้ตัวเลือกที่กำหนดค่าได้
function mfp_append_text_to_content($content) {
if (is_single() && in_the_loop() && is_main_query()) {
// 从选项中获取自定义消息,如果不存在则使用默认值
$custom_text = get_option('mfp_custom_message', '本文由“我的第一个插件”为您呈现。');
if (!empty($custom_text)) {
$content .= '<p><em>' . wp_kses_post($custom_text) . '</em></p>';
}
}
return $content;
} การเตรียมปลั๊กอินสำหรับสากลและการเผยแพร่
เพื่อให้ปลั๊กอินสามารถใช้งานได้โดยผู้ใช้ทั่วโลก การทำให้เป็นสากลเป็นขั้นตอนสำคัญ ซึ่งเกี่ยวข้องกับการใช้โดเมนข้อความและฟังก์ชันการแปลเพื่อห่อหุ้มสตริงที่ผู้ใช้มองเห็นได้ทั้งหมด
ใช้ฟังก์ชันการแปลเพื่อห่อหุ้มข้อความ
คุณต้องใช้ฟังก์ชันการแปลเฉพาะเพื่อห่อหุ้มสตริงทั้งหมดที่แสดงผลในปลั๊กอิน (เช่น ข้อความที่ส่งกลับโดย echo หรือ ``) ที่ใช้บ่อยที่สุดคือ () สำหรับการแปลและส่งคืนสตริง และ esc_html__() สำหรับการแปลและหลีกเลี่ยง HTML
แก้ไขตัวอย่างโค้ดก่อนหน้า:
// 在管理菜单中添加一个顶级菜单(国际化版本)
function mfp_add_admin_menu() {
add_menu_page(
__('我的第一个插件设置', 'my-first-plugin'), // 页面标题
__('我的插件', 'my-first-plugin'), // 菜单标题
'manage_options',
'my-first-plugin',
'mfp_settings_page',
'dashicons-admin-generic',
6
);
}
add_action('admin_menu', 'mfp_add_admin_menu');
// 区域描述回调函数(国际化版本)
function mfp_section_callback() {
echo '<p>' . esc_html__('在这里配置插件在文章末尾显示的消息。', 'my-first-plugin') . '</p>';
} ในขณะเดียวกัน จำเป็นต้องโหลดพื้นที่ข้อความ หลังจากบล็อกความคิดเห็นในไฟล์หลักของปลั๊กอิน ให้เพิ่มโค้ดสำหรับโหลดไฟล์แปล:
// 加载插件文本域
function mfp_load_textdomain() {
load_plugin_textdomain('my-first-plugin', false, dirname(plugin_basename(__FILE__)) . '/languages/');
}
add_action('plugins_loaded', 'mfp_load_textdomain'); เตรียมแพ็คเกจบีบอัดปลั๊กอิน
ก่อนที่จะเผยแพร่หรือแชร์ปลั๊กอิน คุณต้องสร้างชุดเผยแพร่ที่สะอาด ตรวจสอบให้แน่ใจว่าไดเรกทอรีปลั๊กอินของคุณมีไฟล์ที่จำเป็นทั้งหมด และไม่รวมเนื้อหาที่ไม่เกี่ยวข้อง เช่น โฟลเดอร์ .git ไฟล์บันทึก หรือไฟล์การกำหนดค่า IDE โดยทั่วไป ชุดเผยแพร่ปลั๊กอินที่เล็กที่สุดควรประกอบด้วย:
1. 主插件 PHP 文件。
2. 一个可选的 readme.txt ไฟล์ที่ทำตามมาตรฐานรูปแบบของ WordPress.org สำหรับแสดงในไดเรกทอรีปลั๊กอิน
3. 一个包含翻译文件的 /languages โฟลเดอร์ (ถ้ามี)
4. 其他必需的 JavaScript、CSS 或图片资源文件夹。
บีบอัดโฟลเดอร์ปลั๊กอินทั้งหมดเป็นไฟล์ ZIP ซึ่งไฟล์นี้สามารถติดตั้งผ่านฟังก์ชัน “อัปโหลดปลั๊กอิน” ใน WordPress แดชบอร์ด หรือส่งไปยังไดเรกทอรีปลั๊กอินอย่างเป็นทางการของ WordPress
สรุป
ผ่านคู่มือนี้นี้ เราได้เดินทางผ่านกระบวนการหลักของการพัฒนาปลั๊กอิน WordPress: ตั้งแต่การเตรียมสภาพแวดล้อม การสร้างไฟล์หลักที่มีส่วนหัวปลั๊กอินมาตรฐาน ไปจนถึงการใช้ฮุคแอ็กชันและฟิลเตอร์เพื่อเพิ่มฟังก์ชันการทำงาน การใช้ Settings API เพื่อสร้างหน้าตัวเลือกที่กำหนดค่าได้ และสุดท้ายแนะนำพื้นฐานของการทำให้เป็นสากล (Internationalization) นี่เป็นการวางรากฐานที่มั่นคงให้คุณในการสร้างปลั๊กอินที่ซับซ้อนและใช้งานได้จริงมากขึ้น จำไว้ว่า โครงสร้างโค้ดที่ดี การปฏิบัติตามมาตรฐานการเขียนโค้ดของ WordPress และการทำความเข้าใจระบบฮุคอย่างลึกซึ้ง เป็นกุญแจสำคัญในการเป็นนักพัฒนาปลั๊กอินที่ยอดเยี่ยม
คำถามที่พบบ่อย (FAQ)
### การพัฒนา WordPress ปลั๊กอินต้องมีพื้นฐานการเขียนโปรแกรมอะไรบ้าง?
คุณจำเป็นต้องมีความรู้พื้นฐานในการเขียนโปรแกรม PHP เนื่องจาก WordPress หลักและปลั๊กอินส่วนใหญ่เขียนด้วยภาษา PHP นอกจากนี้ การมีความเข้าใจพื้นฐานเกี่ยวกับ HTML, CSS และ JavaScript จะเป็นประโยชน์อย่างมาก โดยเฉพาะอย่างยิ่งเมื่อคุณจำเป็นต้องปรับแต่งอินเทอร์เฟซผู้ดูแลระบบหรือการโต้ตอบส่วนหน้า (front-end) การเข้าใจแนวคิดพื้นฐานของ WordPress เช่น โพสต์ หน้า แท็กซอนอมี และฮุค ก็เป็นสิ่งจำเป็นเช่นกัน
ไฟล์หลักของปลั๊กอินต้องมีชื่อว่าอะไร?
ไม่มีข้อกำหนดบังคับ ไฟล์หลักสามารถเป็นชื่อไฟล์ PHP ที่ถูกต้องใดก็ได้ แต่โดยทั่วไปแนะนำให้ใช้ชื่อที่สอดคล้องกับชื่อไดเรกทอรีปลั๊กอิน เช่น หากชื่อไดเรกทอรีคือ my-super-pluginไฟล์หลักสามารถตั้งชื่อเป็น my-super-plugin.phpได้ สิ่งสำคัญคือความคิดเห็นส่วนหัวของปลั๊กอินที่ด้านบนของไฟล์ WordPress ใช้ความคิดเห็นใน Plugin Name: เพื่อระบุปลั๊กอิน
ฉันจะดีบั๊กโค้ดปลั๊กอินของฉันได้อย่างไร?
มีหลายวิธีในการดีบั๊กปลั๊กอิน อย่างแรก ตรวจสอบให้แน่ใจว่าเปิดโหมดดีบั๊กของ WordPress ในไฟล์ wp-config.php ของคุณ โดยตั้งค่า WP_DEBUG เป็น trueซึ่งจะแสดงข้อผิดพลาด คำเตือน และการแจ้งเตือนของ PHP บนหน้าเว็บ นอกจากนี้ ยังสามารถใช้ฟังก์ชัน error_log() เพื่อเขียนข้อมูลดีบั๊กลงในบันทึกข้อผิดพลาดของเซิร์ฟเวอร์ หรือใช้เครื่องมือดีบั๊กขั้นสูง เช่น ปลั๊กอิน Query Monitor ซึ่งสามารถให้รายละเอียดเกี่ยวกับคำสั่งฐานข้อมูล ฮุค ข้อผิดพลาด PHP และอื่นๆ
ฉันจะเผยแพร่ปลั๊กอินที่ฉันพัฒนาบนไดเรกทอรีปลั๊กอินอย่างเป็นทางการของ WordPress ได้อย่างไร
ในการเผยแพร่ปลั๊กอินไปยังไดเรกทอรีปลั๊กอินอย่างเป็นทางการของ WordPress.org คุณต้องลงทะเบียนบัญชีบน WordPress.org ก่อน จากนั้นส่งปลั๊กอินของคุณเพื่อตรวจสอบ รหัสปลั๊กอินของคุณต้องเป็นไปตามใบอนุญาต GNU GPL และต้องมีไฟล์ readme.txt ที่มีรูปแบบถูกต้อง readme.txt ทีมตรวจสอบจะตรวจสอบคุณภาพรหัส ความปลอดภัย และการปฏิบัติตามแนวทางไดเรกทอรี หลังจากผ่านการตรวจสอบ คุณจะได้รับที่เก็บ SVN สำหรับการจัดการและอัปเดตรุ่นปลั๊กอินของคุณ
ขั้นต่อไป ฉันควรทำอย่างไรต่อไป
อ่านเพิ่มเติมและรับความรู้ที่มีประโยชน์
下面这些内容与本文主题相关,适合继续深入阅读。优先从与你当前问题最接近的文章开始看,再逐步扩展到周边主题,效果通常会更好。
- วิธีการเลือกและปรับแต่งธีม WordPress ที่สมบูรณ์แบบสำหรับคุณ
- คู่มือการพัฒนา WordPress Plugin: สร้างปลั๊กอินที่กำหนดเองตัวแรกของคุณตั้งแต่เริ่มต้น
- เป็นนักพัฒนา WordPress Plugin: คู่มือฉบับสมบูรณ์จากศูนย์ถึงหนึ่ง
- จากศูนย์สู่วันที่หนึ่ง: คู่มือฉบับสมบูรณ์และเทคนิคปฏิบัติจริงในการสร้างเว็บไซต์ระดับมืออาชีพด้วย WordPress
- คู่มือการพัฒนา WordPress Plugin อย่างสมบูรณ์: จากพื้นฐานสู่ระดับเชี่ยวชาญในการสร้างส่วนขยายมืออาชีพ