Panduan Pembangunan Plugin WordPress: Dari Kosong Ke Sesuatu – Cipta Fungsi Khusus Anda Sendiri

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

Konsep Utama dan Persiapan Kerja

Pembangunan plugin untuk WordPress merujuk kepada proses penulisan modul kod PHP yang berasingan di luar fungsi asas WordPress, dengan tujuan untuk memperluas dan meningkatkan keupayaan laman web tersebut. Memahami prinsip kerjanya merupakan langkah pertama yang penting untuk kejayaan. WordPress menggunakan pendekatan pengaturcaraan berorientasikan objek dan berdasarkan acara (hook dan filter). Sebuah plugin pada asasnya terdiri daripada satu atau lebih fail PHP yang berinteraksi dengan komponen asas WordPress melalui antara muka yang telah ditetapkan oleh WordPress, sehingga membolehkan penambahan ciri-ciri baru dengan cara yang selamat.

Sebelum memulakan pembangunan, anda memerlukan persekitaran pelayan tempatan atau ujian yang stabil. Kami sangat mengesyorkan untuk memasang perisian pelayan tempatan seperti XAMPP, Local by Flywheel, atau DevKinsta. Pada masa yang sama, pastikan anda mempunyai editor kod (seperti VS Code atau PhpStorm) dan mengaktifkan mod pembangunan (debugging mode) untuk WordPress. Ini perlu dilakukan sebelum mula proses pembangunan.wp-config.phpBeberapa pemalar (constants) telah ditetapkan dalam fail tersebut:

define( ‘WP_DEBUG’, true );
define( ‘WP_DEBUG_LOG’, true );
define( ‘WP_DEBUG_DISPLAY’, false );

AktifkanWP_DEBUG_LOGSelepas itu, maklumat ralat akan direkodkan./wp-content/debug.logDalam fail tersebut, ini sangat penting untuk mengenal pasti dan menyelesaikan masalah.

Diperoleh daripada WEB\nDisyorkan untuk membaca. Panduan Lanjutan Pembangunan Tema WordPress: Tutorial Praktikal Dari Permulaan Hingga Kemahiran Lanjutan

Mencipta plugin pertama anda

Create a plugin, starting with…/wp-content/plugins/Cipta sebuah folder khusus di dalam direktori tersebut, sebagai contoh…my-first-pluginDalam folder ini, anda mesti membuat sebuah fail PHP utama. Nama fail tersebut biasanya sama dengan nama folder tersebut.my-first-plugin.php

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 maklumat kepala untuk plugin

Setiap plugin WordPress memerlukan sebuah ulasan kepala plugin yang standard, yang berfungsi sebagai “kad pengenalan” untuk plugin tersebut agar dapat dikenali oleh WordPress. Ulasan ini harus diletakkan di awal fail utama plugin dan menggunakan format yang ditentukan oleh WordPress.Plugin NameMaklumat lain seperti deskripsi, versi, penulis, dan sebagainya juga sangat penting.

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

Komen ini akan memastikan bahawa plugin anda akan muncul dalam senarai “Plugins” di panel pentadbiran WordPress, dan maklumat yang dinyatakan di atas akan dipaparkan.Text DomainDomain PathIni adalah untuk persiapan pengekstrakan kandungan (translation) bagi plugin tersebut.

Melaksanakan satu fungsi asas

Sekarang, mari kita tambahkan satu fungsi yang mudah untuk plugin ini: menambahkan segmen teks khusus secara automatik di bahagian bawah kandungan artikel. Ini memerlukan penggunaan “filter” dalam WordPress. Filter membenarkan anda mengubah data sebelum ia disimpan ke dalam pangkalan data atau dipaparkan di browser.

Kita akan menggunakan…the_contentPenapis ini. Dalam fail plugin utama anda, tambahkan kod berikut selepas ulasan di bahagian atas:

Diperoleh daripada WEB\nDisyorkan untuk membaca. Tutorial Ultimate untuk Pembangunan Plugin WordPress: Membina Plugin Pertama Anda Dari Awal Hingga Selesai

// 在文章内容末尾添加自定义文本
function myfp_add_text_to_content( $content ) {
    if ( is_single() &amp;&amp; in_the_loop() &amp;&amp; is_main_query() ) {
        $custom_text = ‘<p><em>Terima kasih kerana membaca artikel ini! Disediakan dengan sokongan dari “My First Plugin”.</em></p>’;
        $content .= $custom_text;
    }
    return $content;
}
add_filter( ‘the_content’, ‘myfp_add_text_to_content’ );

Setelah menyimpan fail tersebut, masuk ke panel pentadbiran WordPress untuk mengaktifkan plugin ini. Apabila anda melihat artikel individu, anda akan melihat teks yang telah ditambahkan di hujung kandungan tersebut.myfp_add_text_to_contentIa adalah fungsi yang kita definisikan, dan ia menerima kandungan artikel sebagai input.$contentTambahkan segmen teks apabila syarat-syarat dipenuhi (iaitu artikel tersebut adalah artikel tunggal dan berada dalam gelung utama), kemudian kembalikan kandungan yang telah diubah suai.add_filter()Fungsi tersebut akan memuatkan fungsi khusus yang dibina sendiri ini (custom function) ke dalam sistem.the_contentPada penapis tersebut.

Membina interaksi menggunakan hook dan filter

Kekuatan plugin WordPress terletak pada sistem hook yang kaya, yang dibahagikan kepada Action Hooks dan Filter Hooks. Action Hooks membenarkan anda “melaksanakan” kod pada masa-masa tertentu, manakala Filter Hooks membenarkan anda “mengubah” data.

Gunakan “action hook” untuk menambah menu pengurusan.

Jika kita ingin menambahkan halaman tetapan untuk sebuah plugin, ini memerlukan penggunaan “action hook”.admin_menuIa diaktifkan semasa pembinaan menu pentadbiran latar belakang 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%.
// 添加插件设置页面到后台菜单
function myfp_add_admin_menu() {
    add_menu_page(
        ‘我的插件设置’,           // 页面标题
        ‘我的插件’,               // 菜单标题
        ‘manage_options’,       // 权限要求
        ‘myfp-settings’,        // 菜单slug
        ‘myfp_settings_page’,   // 用于显示页面内容的回调函数
        ‘dashicons-admin-generic’, // 图标(可选)
        80                      // 菜单位置
    );
}
add_action( ‘admin_menu’, ‘myfp_add_admin_menu’ );

// 定义设置页面的显示内容
function myfp_settings_page() {
    ?&gt;
    <div class="“wrap”">
        <h1><?php esc_html_e( ‘我的插件设置’, ‘my-first-plugin’ ); ?></h1>
        <p><?php esc_html_e( ‘这是你的第一个插件设置页面。’, ‘my-first-plugin’ ); ?></p>
        <form method="“post”" action="/ms/“options.php”/" data-trp-original-action="“options.php”">
            <?php
            // 后续可以在这里添加设置字段
            settings_fields( ‘myfp_settings_group’ );
            do_settings_sections( ‘myfp-settings’ );
            submit_button();
            ?>
        <input type="hidden" name="trp-form-language" value="ms"/></form>
    </div>
    &lt;?php
}

Setelah mengaktifkan plugin tersebut, anda akan melihat pilihan menu baru yang bernama “My Plugins” di sebelah kiri skrin latar belakang. Klik pada pilihan tersebut untuk masuk ke halaman tetapan yang boleh disesuaikan.add_menu_pageFungsi tersebut adalah kritikal; ia telah mendaftarkan halaman menu utama.

Mencipta kod pendek untuk meningkatkan fungsi halaman

Shortcodes merupakan alat yang sangat berguna yang membolehkan pengguna memanggil fungsi-fungsi plugin dengan mudah dalam artikel atau halaman web. Anda boleh menggunakannya untuk...add_shortcode()Fungsi untuk mendaftar kod pendek.

// 创建一个显示当前时间的短代码
function myfp_current_time_shortcode( $atts ) {
    // 使用 shortcode_atts 设置默认属性并合并用户输入
    $attributes = shortcode_atts( array(
        ‘format’ =&gt; ‘Y-m-d H:i:s’,
    ), $atts );

// 根据属性格式化当前时间
    $current_time = date( $attributes[‘format’] );

// 返回要显示的内容,确保进行转义
    return ‘<p>Masa sekarang adalah: ’. esc_html($current_time).‘</p>’php
add_shortcode( ‘show_time’, ‘myfp_current_time_shortcode’ );

Sekarang, pengguna boleh memasukkan kandungan dalam editor artikel.[show_time format=“F j, Y”]Untuk menunjukkan tarikh semasa yang diformat, gunakan pemproses kod ringkas (short code processor).myfp_current_time_shortcodeMenerima array atribut, dan mengembalikan kandungan HTML yang perlu disisipkan ke dalam halaman.

Diperoleh daripada WEB\nDisyorkan untuk membaca. Pembangunan Plugin WordPress: Panduan Lengkap Dari Permulaan Hingga Kemahiran Tinggi – Membina Laman Web Yang Diperibadikan

Keselamatan plugin dan amalan terbaik

Semasa membangunkan plugin, keselamatan merupakan faktor utama yang perlu diambil kira. Kod yang tidak selamat boleh menyebabkan laman web diserang. Adalah sangat penting untuk mengikuti amalan terbaik yang berikut:

Pemverian data, pengekstrakan karakter khusus (escape), dan pembersihan data

Semua data yang datang dari pengguna atau sumber luar (seperti…)$_GET$_POST$_COOKIESemua data tersebut adalah tidak boleh dipercayai. Sebelum digunakan untuk pertanyaan pangkalan data atau dipaparkan di dalam pelayar, data tersebut perlu diproses terlebih dahulu.

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.
  • Ketika data dihantar ke pelayar, gunakan fungsi pengelakkan (escape function) untuk memastikan data dipaparkan dalam bentuk teks biasa (plain text) dan mencegah serangan XSS (Cross-Site Scripting). Bergantung pada konteksnya, WordPress menyediakan pelbagai fungsi pengelakkan yang berbeza.esc_html()(Digunakan dalam elemen HTML)esc_attr()(Digunakan dalam atribut HTML)esc_url()(untuk URL) danwp_kses_post()(Izinkan tag HTML yang selamat untuk dilalui.)
  • Semasa berinteraksi dengan pangkalan data, gunakan pernyataan pra-pengaturcaraan (prepared statements): Jangan sekali-kali menyatukan nilai variabel secara langsung ke dalam kueri SQL. Sebaliknya, gunakan kaedah yang lebih selamat.$wpdb->prepare()Metode atau API yang lebih canggih seperti…WP_QueryContohnya:
global $wpdb;
$user_id = 123;
$safe_query = $wpdb->prepare( “SELECT * FROM {$wpdb->prefix}posts WHERE post_author = %d”, $user_id );
$results = $wpdb->get_results( $safe_query );

Di sini%dIni adalah penanda tempat (%s).$wpdb->prepare()Akan diurus dengan selamat.$user_idVariabel.

Melaksanakan tetapan pilihan dan keselamatan

Ketika menambahkan pilihan tetapan yang boleh disesuaikan untuk sebuah plugin, anda harus menggunakan WordPress Settings API. API ini menguruskan proses pengesahan Nonce, pemeriksaan hak akses, dan penyimpanan tetapan secara automatik, yang sangat memudahkan proses keselamatan.

Pertama sekali, gunakanregister_setting()Daftarkan satu kumpulan pilihan tetapan, kemudian gunakannya.add_settings_section()add_settings_field()Untuk menambahkan bidang (fields), gunakan fungsi panggil balik (callback function) menu pengurusan yang telah dibuat sebelum ini.myfp_settings_pageYang dipanggil dalam fungsi pusat (central function)settings_fields( ‘myfp_settings_group’ )do_settings_sections( ‘myfp-settings’ )Ia akan memaparkan semua bidang keselamatan yang diperlukan serta kawasan tetapan pendaftaran. Ini lebih mudah daripada mengurusnya secara manual.$_POSTData perlu menjadi jauh lebih selamat dan boleh dipercayai.

RINGKASAN

Mulai dengan menulis ulasan kepala (header comments) untuk sebuah plugin yang ringkas, kemudian menggunakan fungsi “action” dan “filter hook” untuk berinteraksi dengan kod asas WordPress, seterusnya membuat “shortcodes” dan mengurus halaman (management pages), anda telah melalui langkah-langkah penting dalam pembangunan plugin. Sentiasa ingat prinsip keselamatan sebagai keutamaan; lakukan pengesahan data yang ketat, proses “escaping” dan pembersihan data yang betul, serta manfaatkan alat keselamatan yang disediakan oleh WordPress seperti Settings API. Pembangunan plugin adalah proses pembelajaran yang berterusan. Dengan membaca kod asas WordPress, merujuk kepada manual rasmi, dan menyertai komuniti, anda akan dapat membina plugin yang berfungsi dengan baik, selamat, dan disukai oleh pengguna.

FAQ - Soalan Lazim

Adakah pembangunan plugin memerlukan kemahiran yang tinggi dalam PHP?

Ya, asas PHP yang kukuh adalah penting kerana WordPress itu sendiri ditulis dalam PHP. Anda perlu memahami konsep-konsep seperti sintaks PHP, fungsi, kelas, dan ruang nama (namespace). Selain itu, pengetahuan asas tentang HTML, CSS, dan JavaScript juga akan sangat membantu dalam pembangunan ciri-ciri bahagian hadapan (front-end) aplikasi.

Bagaimana untuk membaiki (debug) kod plugin saya?

Cara yang paling berkesan adalah dengan mengaktifkan apa yang telah disebutkan sebelum ini.WP_DEBUGWP_DEBUG_LOGWP_DEBUG_DISPLAYSelain itu, ia juga boleh digunakan.error_log()Fungsi tersebut akan menulis maklumat pembaikan (debugging information) yang disesuaikan ke dalam log, atau menggunakan alat pembaikan profesional seperti Xdebug bersama editor kod anda untuk melakukan pembaikan baris demi baris.

Bagaimanakah saya harus menambah terjemahan bahasa untuk plugin saya?

Pertama sekali, tetapkan dengan betul dalam ulasan di bahagian atas plugin.Text Domain(seperti ‘my-first-plugin’) danDomain Path(Contohnya, ‘/languages’). Kemudian, di mana-mana dalam kod di mana terdapat rentetan teks yang perlu diterjemahkan, gunakan kaedah yang serupa.__( ‘Hello World’, ‘my-first-plugin’ )esc_html_e( ‘Settings’, ‘my-first-plugin’ )Fungsi terjemahan tersebut digunakan untuk menterjemahkan teks. Akhirnya, alat seperti Poedit digunakan untuk menghasilkan fail terjemahan yang siap digunakan..potFail templat, dan dengan ini mencipta versi dalam bahasa yang berbeza..po.moTerjemahkan fail tersebut dan letakkannya di tempat yang ditentukan./languagesDalam direktori tersebut.

Bagaimanakah untuk mengeluarkan plugin yang telah dibangunkan ke direktori rasmi WordPress?

Anda perlu mengakses halaman penghantaran plugin rasmi WordPress. Sebelum menghantar, pastikan kod tersebut mematuhi standard pengaturcaraan WordPress, mengandungi dokumentasi dan ulasan yang terperinci, dan tidak mengandungi sebarang masalah hak cipta berkaitan perpustakaan komersial pihak ketiga. Selepas penghantaran, akan ada proses semakan, dan jika diluluskan, plugin anda akan dapat ditemui dan dipasang oleh pengguna di seluruh dunia.