Panduan Permulaan Pembangunan Plugin WordPress: Bina Modul Fungsi Khusus Anda Sendiri Dari Kosong

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

Mengapa perlu membangunkan sendiri plugin WordPress?

Salah satu falsafah reka bentuk asas WordPress adalah kebolehluasan yang tinggi, dan plugin merupakan cara utama untuk mencapai ciri ini. Walaupun perpustakaan plugin rasmi menawarkan pilihan yang banyak, mengembangkan plugin sendiri boleh memberikan kelebihan yang unik. Apabila plugin sedia ada tidak sesuai dengan logik perniagaan anda, menghadapi masalah prestasi, atau memuatkan terlalu banyak fungsi yang tidak diperlukan, pembangunan khusus merupakan pilihan terbaik. Ia membolehkan anda membina penyelesaian yang sepenuhnya memenuhi keperluan projek, dengan kod yang ringkas dan mudah diselenggara.

Melalui pembangunan plugin, anda boleh memisahkan fungsi khusus yang dibangunkan sendiri daripada tema asal laman web. Ini merupakan amalan terbaik yang sangat penting, kerana ia memastikan bahawa walaupun tema laman web diubah, fungsi-fungsi asas tetap dapat berfungsi dengan baik. Selain itu, plugin yang dibangunkan dengan baik boleh digunakan semula dengan mudah dalam projek-projek yang berbeza, yang sangat meningkatkan kecekapan pembangunan. Bagi pembangun yang ingin memahami dengan lebih mendalam cara WordPress berfungsi, meningkatkan kemahiran pengaturcaraan PHP, atau merancang untuk mengeluarkan plugin komersial, menguasai pembangunan plugin adalah sesuatu yang perlu dilakukan.

Membina struktur asas untuk plugin pertama anda

Membuat sebuah plugin untuk WordPress bermula dengan mencipta direktori yang betul dan fail utama yang ringkas. Inilah titik permulaan bagi semua pembangunan plugin.

Diperoleh daripada WEB\nDisyorkan untuk membaca. Dari permulaan hingga amalan: Panduan komprehensif untuk pembangunan plugin WordPress dan teknik-teknik lanjutan.

Buat fail plugin utama

Semua plugin mesti mempunyai satu fail PHP utama, yang mengandungi ulasan kepala plugin yang khusus, untuk menyatakan plugin anda kepada sistem WordPress. Fail ini biasanya dinamakan berdasarkan nama plugin tersebut. Sebagai contoh, kita boleh membuat satu fail yang dinamakan… my-first-plugin.php Fail tersebut.

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.
<?php
/**
 * Plugin Name:       我的第一个定制插件
 * Plugin URI:        https://www.yourwebsite.com/my-first-plugin
 * Description:       这是一个用于学习WordPress插件开发的入门示例插件。
 * Version:           1.0.0
 * Author:            你的名字
 * License:           GPL v2 or later
 * Text Domain:       my-first-plugin
 */

Komen ini adalah kunci untuk WordPress mengenal pasti plugin. “Nama Plugin” adalah item wajib, manakala maklumat lain adalah pilihan. Selepas membuat fail ini, letakkan ia di… /wp-content/plugins/my-first-plugin/ Anda boleh melihat dan mengaktifkannya pada halaman “Plugin” di bahagian belakang WordPress (admin).

Memahami keselamatan plugin dan amalan terbaik

Sebelum menulis sebarang kod fungsi, langkah pertama yang perlu diambil adalah untuk mewujudkan langkah-langkah perlindungan keselamatan. WordPress menyediakan sebilangan besar pemboleh ubah dan fungsi global, dan mengakses fail-fail teras secara langsung adalah berbahaya serta tidak dibenarkan. Oleh itu, di bahagian atas setiap fail PHP untuk plugin, kod perlindungan yang menghalang akses langsung perlu ditambahkan.

Selepas ulasan pada bahagian kepala plugin dalam fail utama anda, tambahkan kod berikut dengan segera:

// 防止直接访问文件
if ( ! defined( 'ABSPATH' ) ) {
    exit; // 如果ABSPATH未定义,则退出
}

Constant ABSPATH Ini adalah path mutlak untuk direktori akar WordPress, yang ditentukan semasa pengaturcaraan awal persekitaran WordPress. Dengan memeriksa sama ada pemboleh ubah (constant) ini wujud, kita dapat mencegah orang lain daripada mengakses fail plugin anda secara langsung melalui URL, seterusnya mengelakkan risiko keselamatan yang berpotensi. Ini merupakan amalan keselamatan pertama dan paling penting dalam pembangunan plugin.

Diperoleh daripada WEB\nDisyorkan untuk membaca. Panduan Permulaan Pembangunan Plugin WordPress

Menggunakan “hooks” untuk memperluas fungsi WordPress

Pembinaan plugin untuk WordPress adalah berdasarkan sistem “Hook” (Pegangan), yang membenarkan anda untuk memasukkan kod khusus pada masa-masa tertentu untuk mengubah atau menambah baik fungsi asas WordPress tanpa perlu mengedit fail asal WordPress. Terdapat dua jenis utama Hook: Action dan Filter.

Gunakan pengait tindakan (action hook) untuk melaksanakan tugas.

Action hooks membenarkan anda menjalankan fungsi khusus apabila acara tertentu berlaku. Sebagai contoh, apabila artikel diterbitkan, pengguna log masuk, atau bahagian atas halaman web dimuat. Untuk menggunakan sebuah action hook, anda perlu menggunakan… add_action() Fungsi.

Jika kita ingin menambahkan mesej selamat datang yang disesuaikan di bahagian atas latar belakang pengurusan laman web, kita boleh melakukannya dengan memasangkannya di sana. admin_notices Ini tergantung pada tindakan yang dilakukan pada “hook” tersebut.

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 my_custom_admin_notice() {
    echo '<div class="notice notice-success is-dismissible"><p>Selamat datang ke panel pentadbiran laman web! Ini adalah notis yang ditambahkan oleh plugin saya.</p></div>';
}
add_action( 'admin_notices', 'my_custom_admin_notice' );

Tambahkan kod ini ke dalam fail plugin utama anda. Setelah plugin diaktifkan, setiap kali anda memasuki panel pentadbiran, anda akan melihat mesej amaran ini. my_custom_admin_notice Ini adalah fungsi panggil balik (callback function) yang kita definisikan sendiri.add_action() Sertakan dengan… admin_notices Hookes are associated with each other.

Menggunakan pengait penyaring untuk mengubah suai data.

Hook filter digunakan untuk mengubah data sebelum ia disimpan, dipaparkan, atau digunakan. Ia menerima data, memprosesnya menggunakan fungsi yang anda tetapkan, dan kemudian harus mengembalikan data yang telah diubah. Ini dilakukan melalui… add_filter() Fungsi ini dilaksanakan melalui kod program.

Sebuah contoh klasik adalah mengubah teks di hujung tajuk artikel. Sebagai contoh, kita ingin menambahkan nama laman web di belakang tajuk semua artikel.

Diperoleh daripada WEB\nDisyorkan untuk membaca. Dari awal: Panduan lengkap untuk pembangunan plugin WordPress dan perkongsian amalan terbaik.

function modify_post_title( $title ) {
    // 确保只在主循环的单篇文章页面修改
    if ( is_single() && in_the_loop() ) {
        $title .= ' | 我的网站';
    }
    return $title;
}
add_filter( 'the_title', 'modify_post_title' );

Di sini,modify_post_title Fungsi tersebut menerima teks tajuk asli sebagai parameter, menambah nama laman web kepadanya, dan kemudian mengembalikannya. WordPress akan menggunakan nilai yang telah diubah suai ini untuk tujuan penampilan. Memahami perbezaan antara tindakan (action) dan penapis (filter) – di mana satu melaksanakan tugas, dan yang lain memodifikasi dan mengembalikan data – adalah kunci untuk menggunakan hook dengan berkesan.

Membuat halaman pengurusan untuk plugin

Banyak plugin memerlukan interaksi dengan pentadbir, yang memerlukan penambahan menu pengurusan dan halaman tetapan yang disesuaikan. WordPress menyediakan satu siri fungsi untuk memudahkan pengembangan menu latar belakang (backend menu).

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.

Tambah menu pengurusan tahap atas

Gunakan add_menu_page() Fungsi tersebut membenarkan anda menambahkan satu item menu utama pada bar sisi pentadbiran untuk plugin anda. Ini biasanya merupakan titik masuk untuk konfigurasi plugin.

Mari kita buat halaman “Pengaturan Plugin Saya” yang mudah.

function my_plugin_add_menu_page() {
    add_menu_page(
        '我的插件设置',          // 页面标题(浏览器标签)
        '我的插件',              // 菜单标题
        'manage_options',       // 所需权限
        'my-plugin-settings',   // 菜单slug(URL标识)
        'my_plugin_settings_page', // 用于渲染页面内容的回调函数
        'dashicons-admin-generic', // 图标(使用Dashicons)
        30                      // 菜单位置
    );
}
add_action( 'admin_menu', 'my_plugin_add_menu_page' );

Seterusnya, anda perlu mendefinisikan fungsi panggilan balik (callback function) yang telah digunakan di atas. my_plugin_settings_page Sila berikan kandungan HTML halaman tersebut untuk saya terjemahkan ke dalam bahasa Melayu.

function my_plugin_settings_page() {
    ?&gt;
    <div class="wrap">
        <h1>Tetapan-tetapan plugin saya</h1>
        <form method="post" action="/ms/options.php/" data-trp-original-action="options.php">
            <?php
            // 输出设置字段(后续可与设置API结合)
            settings_fields( 'my_plugin_options_group' );
            do_settings_sections( 'my-plugin-settings' );
            submit_button();
            ?>
        <input type="hidden" name="trp-form-language" value="ms"/></form>
    </div>
    &lt;?php
}

Mengintegrasikan API Tetapan WordPress

Mengurus penghantaran dan pengesahan borang secara manual adalah proses yang memakan masa dan mudah berlaku ralat. API Tetapan (Settings API) WordPress membantu mengautomasikan proses ini, termasuk pengesahan Nonce, pemeriksaan hak akses, dan penyimpanan data.

Pertama sekali, anda perlu mendaftar dan mengatur tetapan, menambahkan blok tetapan serta bidang-bidang yang diperlukan.

function my_plugin_settings_init() {
    // 注册一组设置
    register_setting( 'my_plugin_options_group', 'my_plugin_option_name' );

// 添加一个设置区块
    add_settings_section(
        'my_plugin_section_id',
        '主要设置',
        null, // 可选的区块描述回调函数
        'my-plugin-settings'
    );

// 向区块中添加一个字段
    add_settings_field(
        'my_plugin_field_id',
        '示例文本字段',
        'my_plugin_field_callback',
        'my-plugin-settings',
        'my_plugin_section_id'
    );
}
add_action( 'admin_init', 'my_plugin_settings_init' );

// 字段的回调函数,用于输出HTML输入框
function my_plugin_field_callback() {
    $option = get_option( 'my_plugin_option_name' );
    echo '<input type="text" name="my_plugin_option_name" value="' . esc_attr( $option ) . '" />';
}

Sekarang, halaman tetapan anda mempunyai satu bidang borang yang dilindungi oleh API tetapan, dan nilai tersebut akan disimpan dengan selamat dalam WordPress. options Dalam jadual pangkalan data. Melalui… get_option( 'my_plugin_option_name' ) Nilai ini boleh diambil di mana-mana, sama ada pada bahagian hadapan (frontend) atau bahagian belakang (backend) sistem.

RINGKASAN

Pembangunan plugin WordPress adalah proses mengubah idea-idea kreatif menjadi ciri-ciri yang berkuasa. Kita bermula dengan memahami mengapa kita memerlukan plugin yang disesuaikan, kemudian membina struktur asas plugin tersebut, sambil menekankan kepentingan kod yang selamat. Kuncinya adalah menguasai sistem hook dalam WordPress, serta berinteraksi dengan komponen utama dengan lancar melalui fungsi “actions” dan “filters”. Seterusnya, kita mempelajari cara membuat antara muka pengurusan yang profesional, dan menggunakan API Settings untuk mengurus konfigurasi pengguna dengan selamat. Dengan mengikuti langkah-langkah dan amalan terbaik ini, anda akan dapat membina plugin yang mempunyai struktur yang jelas, selamat, boleh dipercayai, dan mudah diselenggara, seterusnya memanfaatkan sepenuhnya potensi WordPress.

FAQ - Soalan Lazim

Apakah pengetahuan asas yang diperlukan untuk membangunkan plugin WordPress?

Untuk mengembangkan plugin WordPress, pengetahuan asas dalam bahasa pengaturcaraan PHP adalah sangat diperlukan, kerana kod plugin kebanyakannya ditulis dalam PHP. Pada masa yang sama, pemahaman asas tentang HTML, CSS, dan JavaScript juga diperlukan untuk membina antara muka pengguna (user interface) yang menarik dan interaktif. Memahami konsep asas WordPress, seperti artikel, halaman, peranan pengguna (user roles), dan mekanisme pengulangan data (The Loop) juga sangat membantu dalam proses pembangunan plugin.

Di mana sepatutnya fungsi-fungsi untuk plugin dan tema diletakkan?

Ini adalah soalan berkaitan amalan terbaik yang sangat penting. Semua kod yang berkaitan dengan fungsi laman web, logik belakang (backend logic), dan operasi data harus diletakkan dalam plugin. Sebaliknya, kod yang berkait rapat dengan penampilan visual laman web, reka letak (layout), dan gaya (seperti templat halaman, CSS, JavaScript front-end) harus diletakkan dalam tema (theme). Kelebihan terbesar daripada pendekatan ini adalah untuk memastikan bahawa fungsi asas laman web tidak hilang apabila tema diubah. Sebagai contoh, kod pendaftaran untuk jenis artikel khusus harus ditulis dalam plugin, manakala fail templat yang menunjukkan jenis artikel tersebut boleh diletakkan dalam tema.

Bagaimana saya boleh mendebug plugin yang sedang saya kembangkan?

Langkah pertama adalah mengaktifkan mod pembangunan (debug mode) di WordPress. Di dalam sistem anda… wp-config.php Dalam fail tersebut, akan… WP_DEBUG Konstanta ditetapkan kepada trueIni akan memaparkan ralat PHP, amaran, dan notis secara langsung pada halaman web. Pada masa yang sama, ia juga boleh digunakan… error_log() Fungsi tersebut akan menulis maklumat pembaikan khusus ke dalam log ralat server. Untuk pembaikan yang lebih kompleks, anda boleh mempertimbangkan untuk menggunakan alat pembaikan PHP yang khusus, seperti Xdebug, atau memasang plugin pemantauan pertanyaan (seperti Query Monitor) untuk melihat pertanyaan pangkalan data, pelaksanaan fungsi tertentu (hook), dan data prestasi.

Bagaimanakah saya boleh melaksanakan pengaturcaraan antarabangsa (internationalization) untuk plugin saya?

WordPress menggunakan rangka kerja GNU gettext untuk melaksanakan pengaturcaraan antarabangsa (i18n) dan penyesuaian tempatan (localization). Dalam plugin anda, anda perlu mengelilingi semua rentetan teks yang perlu diterjemahkan dengan fungsi tertentu. Yang paling sering digunakan adalah… __() Digunakan untuk menterjemahkan dan mengembalikan rentetan teks dalam kod, serta… _e() Untuk menterjemahkan dan mengeluarkan terus rentetan teks, anda perlu mengatur tetapan dengan betul dalam komen kepala plugin. Text DomainDan gunakannya semasa plugin dimuat. load_plugin_textdomain() Fungsi tersebut digunakan untuk memuat turun fail terjemahan. Selepas itu, anda boleh menggunakan perisian seperti Poedit untuk menghasilkan terjemahan yang diinginkan. .pot Fail templat, dan buat versi yang berbeza untuk bahasa yang berbeza. .po.mo Menterjemahkan dokumen.