Menguasai pembangunan plugin WordPress: Membina ekstensi fungsi pertama anda dari awal.

Bacaan 3 minit
2026-03-20
2026-06-03
2,445
Saya mendapat komisen apabila anda membeli-belah melalui pautan di bawah, tanpa sebarang kos tambahan kepada anda.

Mengapa memilih pembangunan plugin untuk WordPress?

WordPress menjadi sistem pengurusan kandungan (Content Management System/CMS) yang paling popular di dunia kerana arkitektur pluginnya yang sangat kuat. Plugin membenarkan pembangun menambahkan hampir mana-mana fungsi ke laman web tanpa perlu mengubah kod asas, daripada borang hubungan yang ringkas hingga sistem e-dagang yang kompleks. Belajar mengembangkan plugin bermakna anda dapat menyesuaikan WordPress dengan lebih mendalam untuk memenuhi keperluan perniagaan tertentu, atau mengubah idea anda menjadi produk yang boleh digunakan semula.

Membangunkan sendiri plugin berbanding dengan mengubah suai tema secara langsung… functions.php Fail-fail tersebut mempunyai kelebihan yang ketara. Plugin merupakan modul fungsi yang berdiri sendiri, dan apabila anda menukar tema, fungsi-fungsi tersebut tidak akan hilang. Ini menjadikan kod lebih mudah untuk dijaga, diperbaharui, dan dikongsi antara projek yang berbeza. Memahami mekanisme asas pembangunan plugin adalah syarat penting untuk menjadi seorang pengembang WordPress yang berpengalaman.

Membina persekitaran pembangunan anda

Sebelum menulis baris kod pertama, sebuah persekitaran pembangunan tempatan yang stabil dan cekap adalah sangat penting. Ini membolehkan anda melakukan ujian dan penyelarasan tanpa mempengaruhi laman web dalam talian.

Diperoleh daripada WEB\nDisyorkan untuk membaca. Panduan Praktikal untuk Membangunkan Plugin WordPress: Membina Plugin Fungsi Pertama Anda Daripada Nol Hingga Satu

Konfigurasi persekitaran pelayan tempatan

Disyorkan untuk menggunakan penyelesaian pelayan tempatan yang terintegrasi, seperti Local by Flywheel, XAMPP, atau MAMP. Penyelesaian ini membenarkan pemasangan Apache/Nginx, PHP, dan MySQL dengan satu klik sahaja. Pastikan bahawa versi PHP yang anda gunakan adalah selaras dengan versi WordPress yang anda ingin gunakan; biasanya, PHP 7.4 atau versi yang lebih baru disyorkan. Selain itu, anda perlu memasang WordPress yang baru pada pelayan tempatan sebagai “sandbox” untuk menguji pelbagai plugin.

UltaHost – Penyedia Hosting untuk WordPress
Jaminan pemulangan wang dalam tempoh 30 hari, lebar jalur dan pangkalan data yang tidak terhad, perlindungan DDoS percuma, diskaun 50% untuk pembelian selama 3 tahun.

Editor kod dan alat pembaikan ralat

Pilih sebuah editor kod yang berkuasa, seperti Visual Studio Code atau PHPStorm. Editor-editor ini menyediakan ciri seperti penyorotan sintaks, cadangan kod, dan integrasi dengan sistem kawalan versi (version control). Untuk tujuan penyelidikan (debugging), mod penyelidikan (debugging mode) WordPress perlu diaktifkan. Ini memerlukan anda mengedit fail-fail yang terdapat dalam direktori utama (root directory) WordPress. wp-config.php Fail, akan WP_DEBUG Konstanta ditetapkan kepada true

define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true ); // 将错误日志保存到 /wp-content/debug.log
define( 'WP_DEBUG_DISPLAY', false ); // 不要在页面上显示错误

Setelah mod pembangunan (debug mode) diaktifkan, semua ralat PHP, amaran, dan notis akan direkod, yang akan membantu anda mengenal pasti masalah dengan cepat.

Cipta fail plugin pertama anda.

Sebuah plugin WordPress boleh sangat ringkas, sehingga hanya terdiri daripada satu fail sahaja, namun sangat penting untuk mengikuti struktur yang baik. Kita akan bermula dengan plugin “Hello World” yang paling asas.

Struktur fail utama plugin

Pertama sekali, dalam WordPress… /wp-content/plugins/ Dalam direktori tersebut, buatlah sebuah folder baru, sebagai contoh… my-first-pluginDalam folder ini, buat sebuah fail PHP utama. Nama fail tersebut biasanya sama dengan nama folder tersebut.my-first-plugin.php

Diperoleh daripada WEB\nDisyorkan untuk membaca. Panduan Pembangunan Custom Plugin untuk WooCommerce: Membina Toko Dalam Talian yang Unik

Setiap plugin mesti mengandungi blok ulasan maklumat plugin standard di bahagian awal fail. WordPress menggunakan blok ini untuk mengenal pasti plugin dan memaparkannya dalam antara muka pengurusan latar belakang.

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

Setelah menyimpan fail tersebut, log masuk ke panel pentadbiran WordPress anda, kemudian ke halaman “Pemasangan Tambahan” (Plugins). Anda sepatutnya dapat melihat tambahan baru ini dalam senarai pemasangan. Kini anda boleh mengaktifkannya, walaupun ia belum mempunyai sebarang fungsi.

Tambahkan fungsi pertama: Mengurus menu

Seterusnya, mari kita tambahkan satu fungsi yang mudah kepada plugin ini: menambahkan satu item menu baru ke dalam bar sisi panel pentadbiran WordPress.

hosting.com Hosting Bersama
Prestasi tinggi, menampilkan CPU AMD EPYC, storan SSD NVMe dan LiteSpeed, dengan sokongan pakar dalaman 24/7, langkah keselamatan canggih termasuk SSL, perlindungan serangan paksa kata laluan, perisian hasad dan DDoS, menjimatkan sehingga 73%.

Kita akan menggunakan… add_action() Fungsi untuk memuatkan fungsi panggilan balik (callback function) admin_menu Aksi ini tergantung pada keadaan tertentu.

// 在插件主文件中,插件头部注释块之后,添加以下代码

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

// 钩子到 admin_menu 动作
add_action( 'admin_menu', 'mfp_add_admin_menu' );

/**
 * 注册一个自定义管理菜单
 */
function mfp_add_admin_menu() {
    add_menu_page(
        '我的第一个插件设置', // 页面标题
        '我的插件',          // 菜单标题
        'manage_options',    // 所需权限
        'my-first-plugin',   // 菜单别名 (slug)
        'mfp_display_admin_page', // 显示页面内容的回调函数
        'dashicons-smiley', // 菜单图标 (使用 Dashicon)
        6                    // 菜单位置
    );
}

/**
 * 管理页面的显示内容
 */
function mfp_display_admin_page() {
    ?&gt;
    <div class="wrap">
        <h1><?php echo esc_html( get_admin_page_title() ); ?></h1>
        <p>Hai dunia! Ini adalah halaman pengurusan plugin pertama saya untuk WordPress.</p>
    </div>
    &lt;?php
}

Setelah menyimpan fail dan memuat semula panel pentadbiran WordPress, anda akan melihat item menu baru yang bernama “My Plugins” di bar menu sebelah kiri. Klik pada item menu tersebut dan anda akan dibawa ke halaman yang ringkas yang menunjukkan mesej selamat datang.

Menggali Lebih Dalam: Hook dan Filter

Falsafah utama dalam pembangunan plugin WordPress adalah “Hook”. Hook membenarkan kod anda untuk “terhubung” dengan proses utama WordPress pada titik masa yang tertentu, untuk mengubah atau menambahkan fungsi. Hook terutamanya dibahagikan kepada dua jenis: Action dan Filter.

Diperoleh daripada WEB\nDisyorkan untuk membaca. Panduan Pembangunan dan Penyesuaian Tema WordPress: Dari Pemulaan Hingga Kemahiran Lanjutan Untuk Membina Laman Web Sendiri

Mengerti tentang “action hook” (tangkai tindakan)

Action hooks dalam WordPress diaktifkan pada masa-masa tertentu semasa proses pelaksanaan, seperti ketika artikel disimpan, kepala halaman dimuat, atau kaki halaman dihasilkan. Plugin anda boleh “mendengar” (mengesan) masa-masa ini dan menjalankan fungsi sendiri. Seperti yang kita gunakan sebelum ini… admin_menu Ia hanyalah sebuah “action hook”.

Satu lagi contoh yang sering berlaku ialah penambahan teks secara automatik di akhir kandungan artikel.

Hosting Bersama InterServer
Hosting kongsi: 1TB/bulan pada $2.50 USD, bulan pertama pada $0.10 USD dengan kod promo tryinterserver. 461 skrip aplikasi awan tersedia untuk pemasangan satu klik.
add_action( 'the_content', 'mfp_append_text_to_content' );

function mfp_append_text_to_content( $content ) {
    if ( is_single() &amp;&amp; in_the_loop() &amp;&amp; is_main_query() ) {
        $append_text = '<p><em>Artikel ini dihasilkan oleh plugin pertama saya.</em></p>';
        $content .= $append_text;
    }
    return $content;
}

Menggunakan penyaring untuk mengubah suai data.

Hook filter digunakan untuk mengubah data sebelum ia disimpan ke dalam pangkalan data atau dihantar ke pelayar. Hook filter menerima data tersebut, membuat pengubahsuaian, dan kemudian perlu mengembalikan data yang telah diubah. Sebuah contoh klasik ialah pengubahsuaian tajuk artikel.

add_filter( 'the_title', 'mfp_modify_post_title' );

function mfp_modify_post_title( $title ) {
    // 只在非后台的主查询中修改
    if ( ! is_admin() && in_the_loop() ) {
        $title = '[重要] ' . $title;
    }
    return $title;
}

Memahami dan menggunakan hook dengan mahir adalah kunci untuk membina plugin yang fleksibel dan berkuasa. WordPress core menyediakan ribuan hook yang meliputi seluruh kitaran hayat aplikasi (lifecycle) tersebut.

Keselamatan plugin dan amalan terbaik

Menulis kod yang selamat dan mengikuti amalan terbaik dapat memastikan bahawa plugin anda stabil, berkesan, dan mudah diterima oleh pembangun lain.

Pemverian Data dan Penyisihan (Data Validation and Escaping)

Jangan pernah mempercayai data yang dimasukkan oleh pengguna atau data yang berasal dari pangkalan data. Setiap kali data hendak dihantar ke pelayar (dalam bentuk HTML, JavaScript, atau atribut), data tersebut mesti di-escape terlebih dahulu. WordPress menyediakan pelbagai fungsi bantuan untuk tujuan ini.

// 输出到 HTML 内容中
echo esc_html( $untrusted_data );
// 输出到 HTML 属性中
echo esc_attr( $untrusted_data );
// 输出到 URL 中
echo esc_url( $untrusted_data );
// 在 JavaScript 变量中输出
$js_data = wp_json_encode( $untrusted_data );

Sebelum menyimpan data ke dalam pangkalan data atau melakukan penilaian logik, pengesahan (Validation) perlu dilakukan untuk memastikan bahawa data tersebut memenuhi format yang dijangka (seperti sama ada ia merupakan alamat e-mel, nombor, dan sebagainya).

Menggunakan ruang nama (namespace) dan kelas (class)

Untuk plugin yang kompleks, disyorkan untuk menggunakan ruang nama PHP (namespace) dan pengaturcaraan berorientasikan objek (Object-Oriented Programming/OOP) untuk mengatur kod. Ini dapat membantu mengelakkan konflik nama fungsi, serta meningkatkan modulasi dan kebolehbacaan kod.

<?php
namespace MyFirstPluginAdmin;

class Admin_Menu {
    public function __construct() {
        add_action( 'admin_menu', [ $this, 'add_menu_page' ] );
    }

public function add_menu_page() {
        add_menu_page( ... );
    }
}

// 初始化
new Admin_Menu();

Selain itu, tambahkan sokongan antarabangsa (internationalization) untuk plugin tersebut (dengan menggunakan…) __()_e() Fungsi yang lengkap, pilihan pembuangan dan pembersihan yang sesuai, serta pematuhan kepada standard pengkodan WordPress, semuanya merupakan komponen penting bagi sebuah plugin yang berkualiti.

RINGKASAN

Pembangunan plugin untuk WordPress adalah sebuah perjalanan yang bermula dari asas hingga ke tahap yang lebih kompleks. Bermula dengan membuat fail asas yang boleh dikenali oleh WordPress, kemudian menggunakan sistem yang kuat seperti “actions” dan “filters hooks” untuk memperluas fungsi plugin tersebut, setiap langkah dilakukan berdasarkan pemahaman yang mendalam tentang struktur dan kerjaan WordPress. Persekitaran pembangunan setempat (local development environment) merupakan “laboratorium” anda, alat-alat debugging pula berfungsi seperti “mikroskop” yang membantu anda menemui dan membetulkan masalah, manakala aspek keselamatan (security) dan amalan terbaik (best practices) merupakan asas penting untuk memastikan hasil kerja anda stabil dan boleh dipercayai.

Dengan membina sebuah plugin menu pengurusan yang ringkas, anda telah melaksanakan proses utama dalam pembangunan plugin. Selanjutnya, anda boleh mencuba untuk mengintegrasikan pilihan tetapan, membuat jadual pangkalan data yang khusus, menambahkan fungsi kod pendek, atau membangunkan alat kecil. Dengan terus berlatih dan merujuk kepada kod asas serta pelaksanaan plugin yang baik, anda akan mampu menghadapi keperluan yang semakin kompleks, dan akhirnya mencipta plugin WordPress yang berkualiti tinggi.

FAQ - Soalan Lazim

Berapa banyak fail yang diperlukan untuk sebuah plugin WordPress?

Sebuah plugin untuk WordPress memerlukan sekurang-kurangnya satu fail PHP. Selagi fail tersebut mengandungi maklumat penunjuk kepala (header) plugin yang betul, WordPress akan mengenalinya dan mengaktifkannya dalam senarai plugin di latar belakang. Tentu saja, untuk plugin yang mempunyai ciri-ciri yang lebih kompleks, kod biasanya disusun dalam beberapa fail dan folder untuk memudahkan penyelenggaraan.

Bagaimanakah konflik nama fungsi dapat dielakkan semasa pembangunan plugin?

Terdapat dua kaedah utama untuk mengelakkan konflik nama fungsi. Yang pertama adalah dengan menambahkan prefiks yang unik kepada semua fungsi anda, contohnya dengan menggunakan singkatan atau akronim daripada nama plugin. mfp_myplugin_Kedua, gunakan kelas dan ruang nama (namespace) dalam PHP untuk mengemas kini fungsi-fungsi anda dalam kaedah-kaedah kelas. Ini merupakan pendekatan yang lebih moden dan disyorkan, yang dapat menyelesaikan masalah konflik nama secara menyeluruh.

Bagaimana untuk menambahkan halaman pilihan tetapan untuk plugin saya?

Menambahkan halaman tetapan untuk sambungan (plugin) biasanya melibatkan penggunaan add_options_page()add_submenu_page() Fungsi tersebut digunakan untuk mendaftarkan halaman, dan kemudian menggunakan API Tetapan (Settings API) WordPress untuk mencipta, mengesahkan, serta menyimpan pilihan dengan selamat. API Tetapan ini merangkumi… register_setting()add_settings_section()add_settings_field() Fungsi-fungsi seperti ini memudahkan proses pembuatan borang tetapan yang standard, serta mengurus aspek keselamatan dan penyimpanan data secara automatik.

Setelah pembangunan selesai, bagaimanakah cara untuk mengeluarkan plugin tersebut ke direktori rasmi WordPress?

Untuk menerbitkan plugin ke dalam direktori rasmi WordPress.org, anda perlu memohon sebuah repositori SVN untuk plugin anda di WordPress.org terlebih dahulu. Selepas itu, pastikan bahawa kod plugin anda memenuhi keperluan dan garis panduan rasmi, termasuk kualiti kod, keselamatan, lesen (mesti serasi dengan GPL), dan kewujudan fail readme.txt yang standard. Kemudian, gunakan alat SVN untuk menghantar kod anda ke repositori yang ditentukan. Pasukan WordPress akan mengauditnya, dan jika diluluskan, plugin anda akan dipaparkan dalam direktori rasmi untuk diunduh dan dipasang oleh pengguna.