Panduan Permulaan untuk Membangunkan Plugin WordPress: Membina Plugin Kustom Pertama Anda Dari Awal

Baca dalam masa 2 minit.
2026-03-12
2026-06-03
2,211
Saya mendapat komisen apabila anda membeli-belah melalui pautan di bawah, tanpa sebarang kos tambahan kepada anda.

Pengaturcaraan persekitaran pembangunan plugin WordPress

Sebelum mula menulis kod, anda memerlukan persekitaran pembangunan tempatan yang sesuai. Sangat disyorkan untuk tidak mengembangkan plugin secara langsung pada pelayan produksi dalam talian. Sebuah persekitaran pembangunan WordPress yang tipikal termasuk perisian pelayan tempatan (seperti XAMPP, MAMP, Local by Flywheel atau Docker), editor kod (seperti VS Code, PHPStorm), dan sebuah pemasangan WordPress yang baru.

Anda perlu memastikan bahawa versi PHP yang anda gunakan adalah selaras dengan keperluan versi WordPress yang anda ingin gunakan. Biasanya, WordPress core adalah serasi dengan pelbagai versi PHP. Untuk pembangunan plugin, disyorkan untuk menggunakan PHP 7.4 atau versi yang lebih baru, agar anda dapat menggunakan sintaks dan ciri-ciri yang lebih moden. Selain itu, anda juga perlu mengaktifkan beberapa tetapan di bahagian pentadbiran (backend) WordPress.WP_DEBUG“Mod”, ini dapat membantu anda menemui ralat dengan cepat semasa proses pembangunan. Dalam kod anda…wp-config.phpDalam fail tersebut, cari dan tetapkan pemalar berikut:

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

Dengan pengaturan ini, maklumat ralat akan direkodkan./wp-content/debug.logDalam fail tersebut, maklumat tersebut tidak akan dipaparkan terus di halaman web, yang seterusnya tidak akan mempengaruhi pengalaman pengguna pada bahagian hadapan (front-end). Ini merupakan amalan terbaik.

Diperoleh daripada WEB\nDisyorkan untuk membaca. Dari Kosong Ke Satu: Panduan Autoriti dan Tutorial Amalan Pembangunan Plugin WordPress

Cipta fail plugin pertama anda.

Semua plugin WordPress disimpan di…/wp-content/plugins/Dalam direktori tersebut, setiap plugin biasanya mempunyai folder yang berasingan. Nama folder tersebut seharusnya ringkas dan mampu mencerminkan fungsi plugin tersebut. Sekarang, mari kita buat plugin pertama kita.

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.

Menulis fail utama plugin

Dalam folder plugin anda, anda perlu membuat sebuah fail PHP utama. Nama fail ini biasanya sama dengan nama folder tersebut, sebagai contoh:my-first-plugin.phpFail ini merupakan pintu masuk untuk plugin, dan ia mesti mengandungi satu notasi khusus untuk header plugin. WordPress menggunakan maklumat meta ini untuk memaparkan plugin anda pada halaman pengurusan plugin di belakang tabir.

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

Setelah anda menyimpan fail ini, anda akan dapat melihatnya di halaman “Pemalam” (Plugins) di bahagian belakang WordPress. Anda kini boleh mengaktifkannya, walaupun ia belum mempunyai sebarang fungsi sebenar, tetapi ini merupakan satu pencapaian yang penting. Dalam bahagian kepala pemalam (plugin header)...Text DomainDomain PathDigunakan untuk penginternasionalan dan penyesuaian lokalisasi, sebagai persiapan untuk pelancaran plugin pada masa depan.

Asas keselamatan dan struktur plugin

Keselamatan adalah keutamaan tertinggi dalam pembangunan plugin. Salah satu cara asas untuk melindungi plugin anda adalah dengan mencegah akses langsung ke fail-fail plugin tersebut. Ini boleh dicapai dengan menambahkan pemeriksaan akses langsung di bahagian atas fail. Sila modifikasi fail utama anda dan tambahkan kod berikut selepas ulasan pada bahagian kepala plugin (plugin header):

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

Kod ini memeriksa nilai-nilai konstanta.ABSPATHAdakah fungsi ini telah ditentukan? Jika tidak (yang bermakna seseorang telah cuba mengakses fail PHP tersebut melalui URL secara langsung), maka pelaksanaan skrip harus dihentikan. Ini merupakan langkah keselamatan yang sepatutnya dimiliki oleh semua plugin WordPress yang berkualiti tinggi.

Diperoleh daripada WEB\nDisyorkan untuk membaca. Panduan Lengkap Pembangunan Plugin WordPress: Daripada Asas Hingga Pelancaran Ke Aplikasi Sebenar

Menambahkan fungsi asas kepada plugin

Fungsi plugin adalah untuk memperluas keupayaan WordPress. Mari kita belajar cara menambahkan ciri-ciri baru melalui dua contoh yang mudah: membuat halaman pengurusan dan menambahkan kandungan pada bahagian hadapan (frontend) aplikasi WordPress.

Tambahkan menu pengurusan yang ringkas.

Pertama sekali, kita akan belajar bagaimana untuk menambahkan halaman menu yang berkaitan dengan plugin kita sendiri dalam antara muka pentadbir pihak belakang (backend administrator). Ini memerlukan penggunaan sistem “Hook” dalam WordPress.admin_menuAction Hook.

Kita menambahkan sebuah fungsi dalam fail utama plugin tersebut, contohnya...mfp_add_admin_menuKemudian gunakanadd_actionFungsi tersebut akan menggunakannya untuk pemasangan (mounting).admin_menuPada kait itu.

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%.
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' );

Seterusnya, kita perlu mendefinisikan fungsi panggilan balik (callback function) yang telah digunakan di atas.mfp_admin_page_htmlUntuk mengeluarkan kandungan HTML halaman. Ini adalah contoh yang paling mudah:

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>Hai dunia! Ini adalah halaman pengurusan plugin pertama saya.</p>
    </div>
    &lt;?php
}

Sekarang, segarkan semula laman belakang WordPress anda, dan anda sepatutnya dapat melihat pilihan menu baru “My Plugins” dalam bar navigasi sebelah kiri.

Tambahkan teks di bahagian bawah halaman frontend.

Selain mengurus bahagian belakang (backend), kita sering perlu membuat perubahan pada bahagian depan (frontend). Sebagai contoh, kita ingin menambahkan maklumat hak cipta di bahagian bawah semua artikel dan halaman. Kali ini, kita akan menggunakan…the_contentFilter Hook.

Diperoleh daripada WEB\nDisyorkan untuk membaca. Panduan Permulaan untuk Membangunkan Plugin WordPress: Membina Ekstensi Fungsi Pertama Anda daripada Awal

Filter Hook membenarkan anda mengubah suai data yang dihantar kepada fungsi. Kita akan membuat sebuah fungsi.mfp_add_footer_textIa menerima kandungan artikel sebagai parameter, dan kemudian menambahkan teks kami sendiri di belakangnya.

function mfp_add_footer_text( $content ) {
    // 仅对主循环中的单篇文章和页面生效
    if ( is_single() &amp;&amp; in_the_loop() &amp;&amp; is_main_query() ) {
        $footer_text = '<p><em>Artikel ini disokong oleh plugin pertama saya.</em></p>';
        $content .= $footer_text;
    }
    return $content;
}
add_filter( 'the_content', 'mfp_add_footer_text' );

Kod ini pertama-tama memeriksa sama ada persekitaran semasa adalah untuk satu artikel atau halaman sahaja, dan sama ada ia berada dalam gelung pertanyaan utama, untuk mengelakkan penambahan teks yang berulang di tempat lain (seperti alat tambahan atau ringkasan). Kemudian, ia menambahkan segmen HTML yang mengandungi maklumat hak cipta di akhir kandungan asal dan mengembalikannya.

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.

Amalan Lanjutan dalam Pembangunan Plugin

Setelah menguasai asas-asasnya, mempelajari beberapa amalan lanjutan dapat menjadikan plugin anda lebih profesional dan lebih stabil (tidak mudah rosak atau mengalami masalah).

Mengimplementasikan pilihan tambahan (plugin options) yang boleh disesuaikan

Sebuah plugin yang matang biasanya memerlukan keupayaan untuk membenarkan pengguna melakukan konfigurasi. WordPress menyediakan API pengaturan (Settings API) untuk memudahkan proses penciptaan halaman pilihan (option pages). Ini melibatkan pendaftaran pengaturan, penambahan medan pengaturan, dan pembahagian kandungan pengaturan. Walaupun lebih rumit berbanding dengan menambahkan halaman menu secara langsung, ia dapat mengurus aspek keselamatan secara automatik (seperti pengesahan Nonce) dan penyimpanan data borang.

Biasanya, kita menyimpan pilihan plugin dalam bentuk array dalam WordPress.wp_optionsDalam jadual tersebut. Anda boleh menggunakannya.add_option()get_option()update_option()Fungsi ini digunakan untuk mengoperasi data plugin anda.

Gunakan kelas untuk mengatur kod plugin.

Apabila fungsi-fungsi plugin semakin bertambah, meletakkan semua fungsi dalam ruang nama global (global namespace) boleh menyebabkan konflik nama fungsi. Amalan terbaik adalah menggunakan kelas PHP untuk mengemas fungsi-fungsi plugin tersebut. Ini bukan sahaja dapat mengatur kod dengan lebih baik, tetapi juga memanfaatkan ciri-ciri pengaturcaraan berorientasikan objek, seperti penggelaran automatik, penggunaan ruang nama (jika anda menggunakan PHP 5.3 atau lebih tinggi), serta penutupan (encapsulation) yang lebih baik.

Fail utama plugin yang berdasarkan kelas mungkin kelihatan seperti ini:

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();

Cara ini mengumpulkan semua kaedah yang berkaitan dalam satu kelas, yang dengan ketara meningkatkan kebolehjagaan kod.

RINGKASAN

Panduan ini membimbing anda melalui proses penuh untuk membuat sebuah plugin khusus untuk WordPress bermula dari kosong. Anda telah belajar cara membina persekitaran yang sesuai, mencipta struktur fail plugin yang selamat, menggunakan “action hooks” dan “filter hooks” untuk memperluas pengurusan bahagian belakang (backend) dan penampilan bahagian depan (frontend), serta memahami konsep pengembangan lanjutan seperti penggunaan pendekatan berorientasikan objek (object-oriented) dan pengaturan API. Inti dari pengembangan plugin adalah memahami sistem hook WordPress, yang menyediakan banyak peluang untuk mengubah tingkah laku platform tanpa perlu mengubah kod asalnya. Amalan yang berterusan, bermula dengan menulis fungsi-fungsi kecil dan secara beransur-ansur membina plugin yang lebih kompleks, merupakan cara terbaik untuk menguasai kemahiran ini.

FAQ - Soalan Lazim

Apa jenis asas PHP yang diperlukan untuk membangunkan plugin ###?
Anda perlu menguasai sintaks asas PHP, termasuk pemboleh ubah (variables), array, fungsi (functions), pengurusan keadaan (conditional statements), dan pengulangan (loops). Yang lebih penting, anda perlu memahami cara berinteraksi dengan API WordPress, seperti cara menggunakan hook (pautan fungsi yang dipanggil secara automatik oleh sistem WordPress).add_action, add_filterDan fungsi-fungsi biasa dalam WordPress. Pengetahuan tentang Pemrograman Berorientasikan Objek (Object-Oriented Programming/OOP) sangat berguna semasa membangunkan plugin yang kompleks.

Bagaimana untuk membaiki (debug) plugin yang anda buat sendiri?

AktifkanWP_DEBUGPemilihan mod (pattern) adalah langkah yang paling kritikal. Semak dengan teliti.wp-content/debug.logLog ralat dalam fail tersebut. Pada masa yang sama, anda boleh menggunakannya dalam kod anda.var_dump()error_log()Fungsi mengeluarkan maklumat pembetulan (debugging information). Sebagai contoh,error_log( print_r( $variable, true ) );Kandungan sebarang variabel boleh direkod ke dalam fail debug.log. Penggunaan alat pembantu debug yang profesional seperti Query Monitor juga dapat meningkatkan kecekapan dengan ketara.

Bolehkah saya menggunakan perpustakaan PHP pihak ketiga dalam plugin saya?

Boleh, tetapi ia harus dilakukan dengan berhati-hati. Untuk mengelakkan konflik versi dengan perpustakaan yang digunakan oleh plugin atau tema lain, disyorkan untuk menggunakan alat pengurusan kebergantungan PHP iaitu Composer, dan mengambil kesempatan daripada fungsi muat turun automatiknya. Semasa mengemas dan mengeluarkan plugin, anda boleh memilih untuk menyertakan fail perpustakaan tersebut dalam plugin anda (pastikan anda mematuhi lesen perpustakaan tersebut), atau meminta pengguna untuk memasang kebergantungan tersebut sendiri pada pelayan.

Bagaimana untuk mengeluarkan plugin ke direktori rasmi WordPress setelah pembangunan selesai?

Anda perlu mengakses WordPress.org untuk menghantar plugin anda untuk semakan. Kod plugin anda mesti mematuhi piawaian dan garis panduan pengaturcaraan rasmi, seperti memastikan keselamatan dan melaksanakan pengaturcaraan antarabangsa (internationalization).__()_e()Fungsi tersebut, dan juga mengandungi butiran yang terperinci…readme.txtFail. Setelah diluluskan, plugin anda akan dapat ditemui dan dipasang oleh pengguna di seluruh dunia.