Panduan Permulaan Pembangunan Plugin WordPress

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

Panduan Permulaan Pembangunan Plugin WordPress

Pemalam (plugin) untuk WordPress merupakan mekanisme utama untuk memperluas fungsi asas WordPress. Ia membenarkan pembangun menambahkan ciri-ciri baru atau mengubah tingkah laku sedia ada pada laman web tanpa perlu mengubah kod asas WordPress. Sama ada ia merupakan fungsi yang mudah seperti kod pendek (short code) atau sistem e-dagang yang kompleks, semuanya boleh dilaksanakan melalui pemalam. Memahami cara kerja pemalam merupakan langkah pertama yang perlu diambil oleh setiap pembangun WordPress.

Sebuah plugin untuk WordPress pada asasnya terdiri daripada satu atau lebih fail PHP yang mengandungi kod yang mematuhi standard pengaturcaraan WordPress. Fail-fail ini disimpan dalam direktori yang ditentukan dan berinteraksi dengan bahagian utama WordPress melalui API plugin. Untuk mengembangkan plugin, seseorang perlu mempunyai pengetahuan tentang PHP, serta memahami perpustakaan fungsi yang luas yang disediakan oleh WordPress, sistem hook (Hooks), dan cara untuk mengendalikan pangkalan data.

Cipta fail plugin pertama anda.

Setiap plugin WordPress memerlukan sebuah fail utama, yang berfungsi sebagai titik masuk (entry point) untuk plugin tersebut. Fail ini mengandungi maklumat meta tentang plugin dan bertanggungjawab untuk menginisialisasikan fungsi-fungsi asas plugin.

Diperoleh daripada WEB\nDisyorkan untuk membaca. Panduan lengkap untuk pembangunan plugin WordPress: daripada tiada pengalaman hingga siap untuk dilancarkan.

Struktur fail utama plugin

Inti sesuatu plugin adalah fail utama, yang biasanya dinamakan berdasarkan nama plugin tersebut, sebagai contoh… my-first-plugin.phpKomen di bahagian atas fail ini sangat penting, kerana ia memberikan maklumat pengenalan tentang plugin kepada WordPress. Berikut adalah contoh komen minimum di bahagian atas fail utama:

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

Dalam ulasan ini, “Nama Plugin” adalah item wajib yang perlu diisi. WordPress bergantung pada maklumat ini untuk mengenal pasti dan memaparkan plugin anda pada antara muka pengurusan latar belakang. Maklumat lain seperti nombor versi dan deskripsi akan membantu pengguna memahami butiran plugin tersebut dengan lebih baik.

Setelah maklumat plugin ditentukan, kita biasanya mula menambahkan kod fungsi. Sebagai contoh, fungsi yang paling mudah adalah menambahkan baris teks khusus di bahagian bawah laman web. Ini boleh dilakukan dengan menggunakan… wp_footer Hook ini (Action Hook) digunakan untuk melaksanakan tugas tersebut.

Membina sebuah fungsi fungsi yang mudah

Berikut adalah contoh lengkap fail utama plugin yang melaksanakan fungsi untuk menambahkan teks di bahagian bawah halaman:

&lt;?php
/**
 * Plugin Name: 页脚问候插件
 */
// 防止直接访问文件
if ( ! defined( &#039;ABSPATH&#039; ) ) {
	exit;
}

/**
 * 在网站页脚输出一条自定义问候语
 */
function myplugin_add_footer_text() {
	echo &#039;<p style="text-align:center;">Terima kasih kerana anda mengunjungi laman web ini!</p>';
}
// 将函数挂载到`wp_footer`钩子上
add_action( 'wp_footer', 'myplugin_add_footer_text' );

Dalam kod ini,myplugin_add_footer_text Ini adalah fungsi yang kita definisikan, dan ia menjalankan operasi pengeluaran (output) yang khusus.add_action() Ia merupakan fungsi WordPress yang digunakan untuk “menggantungkan” (hooking) fungsi-fungsi khusus kita ke dalam kod teras WordPress. wp_footer Pada titik pelaksanaan tersebut, setiap kali WordPress menjalankan bahagian kaki halaman (footer), fungsi kita akan dipanggil secara automatik.

Diperoleh daripada WEB\nDisyorkan untuk membaca. Dari Permulaan Hingga Kemahiran: Panduan Lengkap dan Tutorial Praktikal Pembangunan Plugin WordPress

Mengerti mekanisme hook dalam WordPress

Hook (Gantung) merupakan inti dan jiwa dalam pembangunan plugin WordPress, kerana ia memungkinkan pengubahsuaian atau pengembangan fungsi asas WordPress. Terdapat dua jenis utama hook: Action Hooks dan Filter Hooks.

Aplikasi pengait tindakan.

Hook untuk tindakan membenarkan anda menjalankan kod yang disesuaikan pada masa tertentu atau apabila acara tertentu berlaku. Sebagai contoh, apabila sebuah artikel diterbitkan…publish_post), atau apabila pengguna log masuk (wp_loginGunakan. add_action() Fungsi tersebut boleh mengikat fungsi panggilan balik (callback function) anda ke pada satu “action hook”.

Contoh di bawah menunjukkan bagaimana untuk menambahkan kenyataan hak cipta secara automatik di akhir kandungan artikel:

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 myplugin_add_post_copyright( $content ) {
	if ( is_single() ) {
		$copyright = '<div class="post-copyright"><p>Kandungan ini adalah hasil karya asli. Sila berikan sumber apabila ingin menggunakannya semula.</p></div>';
		$content .= $copyright;
	}
	return $content;
}
add_filter( 'the_content', 'myplugin_add_post_copyright' );

Perhatikan, di sini kita telah menggunakan… add_filter() bukan sebaliknya add_action()Kerana mengubah kandungan artikel merupakan tindakan “penapisan” (filtering), ini telah menimbulkan satu lagi jenis hook (mekanisme pengaitan/pengendalian) yang penting.

Fungsi hook penapis (filter hook)

Hook untuk penapis membenarkan anda mengubah data yang dihantar semasa proses berlangsung. Perbezaan utama antara hook penapis dan hook tindakan adalah fungsi penapis mesti mengembalikan satu nilai (biasanya nilai input yang telah diubah). Sebagai contoh,the_content Penapis membenarkan anda mengubah kandungan artikel yang akan dikeluarkan., the_title Anda dibenarkan untuk mengubah tajuk artikel tersebut.

Contoh di bawah menunjukkan bagaimana untuk menggunakan penapis untuk mengubah panjang ringkasan artikel:

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

function myplugin_custom_excerpt_length( $length ) {
	// 将默认的55个词改为20个词
	return 20;
}
add_filter( 'excerpt_length', 'myplugin_custom_excerpt_length' );

Dalam contoh ini, fungsi kita… myplugin_custom_excerpt_length Nilai panjang ringkasan lalai telah diterima, dan nilai baru yang kami tetapkan telah dikembalikan. WordPress kemudian akan menggunakan nilai baru ini untuk menjana ringkasan tersebut.

Pengantarabangsaan plugin dan bidang teks (Text Fields)

Untuk membolehkan plugin anda digunakan oleh pengguna di seluruh dunia, proses internasionalisasi (i18n) adalah langkah yang penting. WordPress menyediakan satu set fungsi yang lengkap untuk melaksanakan terjemahan plugin ke dalam pelbagai bahasa.

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.

Mengisi kawasan teks untuk plugin

Langkah pertama ke arah internationalisasi adalah dengan mengatur domain teks (Text Domain) dengan betul dalam plugin, dan memuatkan fail terjemahan pada masa yang sesuai. Domain teks perlu sama sepenuhnya dengan apa yang didefinisikan dalam nota kepala (header comments) fail utama plugin.

Kita biasanya menggunakannya semasa pemulaan plugin. load_plugin_textdomain Fungsi untuk memuatkan terjemahan. Satu kaedah standard adalah dengan meletakkan kod berikut dalam fail utama:

function myplugin_load_textdomain() {
	load_plugin_textdomain( 'my-first-plugin', false, dirname( plugin_basename( __FILE__ ) ) . '/languages/' );
}
add_action( 'plugins_loaded', 'myplugin_load_textdomain' );

Kod ini mendefinisikan sebuah fungsi. myplugin_load_textdomainDan gunakan add_action Mount it to... plugins_loaded Pada bahagian yang berkaitan dengan “hook”, ini memastikan bahawa fail terjemahan telah dimuat turun sebelum kod fungsi plugin dijalankan. Parameter ketiga menentukan laluan penyimpanan fail bahasa (.mo file), yang biasanya terletak dalam direktori plugin. languages Dalam folder tersebut.

Gunakan fungsi terjemahan untuk membungkus rentetan teks.

Dalam kod plugin, semua teks yang ditujukan untuk pengguna perlu dibungkus menggunakan fungsi tertentu. Dua fungsi yang paling sering digunakan ialah… __()_e()

__() Fungsi tersebut mengembalikan rentetan teks yang telah diterjemahkan. _e() Fungsi tersebut akan terus mengeluarkan kandungannya (echo). Dalam contoh sebelumnya di mana teks kaki halaman ditambahkan, kita perlu menulisnya dengan cara ini untuk menyokong proses terjemahan:

function myplugin_add_footer_text() {
	$text = __( '感谢您访问本网站!', 'my-first-plugin' );
	echo '<p style="text-align:center;">'`. esc_html($text)`.'</p>';
}
add_action( 'wp_footer', 'myplugin_add_footer_text' );

Di sini, ayat “Terima kasih kerana anda mengunjungi laman web ini!” __() Pengemasan fungsi, dan penentuan kawasan teks my-first-pluginPenterjemah boleh menghasilkan fail terjemahan dalam bahasa yang berbeza untuk ayat ini. Pada masa yang sama, kami menggunakan… esc_html() Fungsi tersebut melakukan proses “escaping” pada output, yang merupakan amalan keselamatan yang penting.

Keselamatan plugin dan amalan terbaik

Membangunkan sebuah plugin yang popular memerlukan perhatian yang sama terhadap aspek keselamatan dan kualiti kod, seperti fungsi-fungsi yang disediakan oleh plugin tersebut. Mengikuti amalan terbaik dapat melindungi laman web pengguna, serta meningkatkan kebolehpercayaan dan kemudahan penyelenggaraan plugin tersebut.

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

Jangan pernah mempercayai data yang datang dari pengguna atau sumber luar. Sebelum memproses sebarang data masuk (seperti $_GET, $_POST, $_COOKIE) atau menghantar data keluar ke pelayar atau pangkalan data, pemeriksaan yang sesuai mesti dilakukan terlebih dahulu.

Untuk data yang dipaparkan pada halaman HTML, gunakan fungsi escape dalam WordPress, seperti… esc_html(), esc_attr(), esc_url()Untuk data yang akan disimpan ke dalam pangkalan data, gunakan… wp_strip_all_tags()sanitize_text_field() Lakukan pembersihan. Contoh di bawah menunjukkan cara yang selamat untuk memproses input daripada borang:

// 假设我们接收一个名为`user_bio`的POST字段
$raw_bio = $_POST['user_bio'] ?? ''; // 使用空合并运算符提供默认值
// 清理数据:移除标签,清理额外空格和特殊字符
$clean_bio = sanitize_textarea_field( $raw_bio );
// 在存入数据库前,还可以使用`wp_kses_post`允许安全的HTML标签
$safe_bio_for_db = wp_kses_post( $clean_bio );
// 现在$safe_bio_for_db可以安全地存入数据库了

Menggunakan kaedah yang bukan berdasarkan CE (Common Encryption Standard) dan pemeriksaan hak akses

Jika plugin anda mempunyai antara muka pengurusan atau untuk mengendalikan penghantaran borang, anda mesti menggunakan mekanisme nonce (Number used once) dari WordPress untuk mencegah serangan penggodaman jenis Cross-Site Request Forgery (CSRF). Pada masa yang sama, anda juga perlu menggunakan Capability Checks untuk memastikan bahawa pengguna semasa mempunyai hak untuk melakukan operasi tersebut.

Semasa membuat menu pengurusan atau borang, jana satu lajur yang bukan merupakan jenis data “CE” (Common Element).

// 在表单中输出一个非ce字段
wp_nonce_field( 'myplugin_save_action', 'myplugin_nonce_field' );

Semasa memproses penghantaran borang, periksa sama ada nilai tersebut bukan “ce”:

// 验证非ce
if ( ! isset( $_POST['myplugin_nonce_field'] ) || ! wp_verify_nonce( $_POST['myplugin_nonce_field'], 'myplugin_save_action' ) ) {
	wp_die( __( '安全校验失败,操作已终止。', 'my-first-plugin' ) );
}
// 检查用户权限(例如,检查是否有`manage_options`权限)
if ( ! current_user_can( 'manage_options' ) ) {
	wp_die( __( '您没有执行此操作的权限。', 'my-first-plugin' ) );
}
// 通过所有安全检查,开始处理数据...

Mengikuti garis panduan keselamatan ini merupakan asas untuk membina sebuah plugin yang boleh dipercayai.

RINGKASAN

Pembangunan plugin untuk WordPress adalah proses mengubah idea-idea kreatif menjadi ciri-ciri yang berguna, dan ia berdasarkan pemahaman yang mendalam tentang struktur asas WordPress. Semuanya bermula dengan membuat fail utama yang mengandungi ulasan kepala (header comments) yang betul. Pembangun kemudian memasuki ekosistem ini. Memahami perbezaan dan penggunaan antara “action hooks” dan “filter hooks” adalah kunci untuk mengembangkan fungsi-fungsi tambahan dalam plugin. Dengan menginternasionalisasi plugin, hasil kerja anda dapat dinikmati oleh pengguna di seluruh dunia. Amalan keselamatan yang konsisten, termasuk pengesahan data, proses pengelakkan serangan (escaping), pembersihan data, serta pemeriksaan hak akses (permissions), merupakan asas untuk memastikan kestabilan dan kepercayaan pengguna terhadap plugin tersebut. Dengan mengikuti langkah-langkah dan amalan terbaik ini, anda akan dapat membina plugin WordPress yang berkuasa, selamat, dan mudah diselenggara.

FAQ - Soalan Lazim

Berapakah fail yang diperlukan sekurang-kurangnya untuk sebuah plugin WordPress?

Sebuah plugin WordPress yang paling ringkas hanya memerlukan satu fail PHP. Fail tersebut mesti mengandungi ulasan kepala plugin yang mematuhi standard (seperti Plugin Name, dll.), serta kod yang digunakan untuk melaksanakan fungsi plugin tersebut. Apabila fungsi plugin menjadi lebih kompleks, ia biasanya akan dibahagikan kepada beberapa fail, yang juga merangkumi fail CSS, JavaScript, gambar, dan fail terjemahan bahasa.

Saya sepatutnya menulis kod plugin terus ke dalam fail functions.php bagi tema tersebut?

Untuk kod yang hanya berkaitan dengan topik semasa dan mempunyai fungsi yang sangat berkaitan, ia boleh ditulis di bawah topik tersebut.functions.phpYa. Namun, untuk ciri-ciri yang bersifat umum dan boleh digunakan dalam pelbagai tema, sangat disyorkan untuk mengembangkannya sebagai plugin yang berasingan. Kelebihan menggunakan plugin adalah ia berdiri sendiri daripada tema tertentu; oleh itu, ciri-ciri tersebut tidak akan hilang apabila tema diubah, dan ia juga lebih mudah untuk diurus serta diedarkan.

Bagaimana untuk membuat halaman tetapan pengurusan untuk plugin saya?

Anda boleh menggunakan fungsi yang disediakan oleh WordPress untuk menambahkan menu pengurusan dan halaman. Yang paling sering digunakan ialah… add_menu_page()add_options_page() Anda perlu membuat sebuah fungsi penunjuk balik (callback function) untuk mengeluarkan kandungan HTML halaman dan mengurus penghantaran borang (termasuk pemeriksaan bukan CE dan pemeriksaan kebenaran akses). Biasanya, proses ini melibatkan penggunaan API Tetapan WordPress (Settings API), yang dapat membantu anda membuat dan mengurus pilihan tetapan dengan lebih teratur dan selamat.

Ketika membangunkan plugin, bagaimanakah cara untuk membaiki ralat (debug) dan merekod maklumat berkaitan ralat tersebut?

Pertama sekali, pastikan bahawa anda berada dalam persekitaran pembangunan (development environment).wp-config.phpAktifkan WP_DEBUG dalam fail tersebut:define( 'WP_DEBUG', true );Ini akan menunjukkan ralat dan amaran PHP pada halaman web. Untuk penyelidikan (debugging) yang lebih kompleks, anda boleh menggunakan alat atau kaedah yang sesuai.error_log()Fungsi tersebut akan merekod maklumat ke dalam log ralat pelayan, atau menggunakan sistem WordPress untuk tujuan yang sama.wp_debugFungsi-fungsi yang berkaitan. Selain itu, terdapat banyak alat pembantu pembaikan (debugging tools) pihak ketiga yang sangat baik, seperti Query Monitor, yang boleh membantu anda menganalisis pertanyaan pangkalan data, skrip, dan lain-lain, serta merupakan pembantu yang kuat dalam pembangunan plugin.