Bermula dari kosong: Langkah-langkah asas dan amalan terbaik dalam pembangunan plugin WordPress

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

Bermula dari kosong: Langkah-langkah asas dan amalan terbaik dalam pembangunan plugin WordPress

Pembangunan plugin untuk WordPress merupakan cara yang sangat berkuasa untuk memperluas fungsi laman web WordPress. Dengan mencipta plugin yang disesuaikan, pembangun dapat menambahkan ciri-ciri unik ke laman web tersebut tanpa perlu mengubah kod asasnya. Ini bukan sahaja meningkatkan keflexibelan laman web, tetapi juga memastikan bahawa ciri-ciri khusus tersebut dapat berfungsi dengan selamat dan stabil walaupun terdapat kemas kini pada kod asas WordPress. Sebuah plugin WordPress yang terstruktur dengan baik akan mengikuti struktur direktori yang tertentu, standard pengkodan, dan API WordPress.

Artikel ini akan membimbing anda melalui keseluruhan proses dari mencipta fail plugin pertama hingga menerbitkannya dengan selamat, merangkumi konsep asas, alat, dan amalan terbaik yang perlu diketahui semasa proses pembangunan.

Diperoleh daripada WEB\nDisyorkan untuk membaca. Panduan Lengkap Pembangunan Plugin WordPress: Membina Fungsi Tambahan WordPress Berkualiti Tinggi Dari Kosong

Pengembangan Alam Sekitar dan Struktur Asas

Sebelum menulis sebarang kod, adalah sangat penting untuk menyediakan persekitaran pembangunan yang sesuai. Alat pembangunan tempatan seperti Local by Flywheel, XAMPP, atau MAMP disyorkan, kerana ia dapat mengkonfigurasi persekitaran yang merangkumi PHP, MySQL, dan pelayan web dengan cepat. Selain itu, editor kod (seperti VS Code atauPhpStorm) serta alat pembangunan (seperti Query Monitor atau Debug Bar) juga diperlukan.

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.

Cipta fail plugin pertama anda.

Bentuk asas sebuah plugin WordPress adalah sebuah fail yang terletak di direktori `wp-content/plugins` dalam direktori utama projek WordPress. /wp-content/plugins/ Fail-fail PHP yang terdapat dalam direktori tersebut. Bahagian atas fail utama plugin mesti mengandungi ulasan maklumat plugin yang standard, yang merupakan asas bagi WordPress untuk mengenal pasti dan menguruskan plugin tersebut.

Buat satu yang bernama… my-first-plugin.php Fail tersebut, dan masukkan kandungan berikut:

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

Simpan fail ini ke… /wp-content/plugins/my-first-plugin/ Dalam folder tersebut, kemudian log masuk ke halaman “Plugin” di panel pentadbiran WordPress, dan anda akan dapat melihat serta mengaktifkan plugin tersebut. Walaupun pada masa ini ia tidak mempunyai sebarang fungsi, strukturnya sudah siap.

Direktori Plugin dan Organisasi Fail

Seiring dengan peningkatan jumlah fungsi, sebuah fail tunggal menjadi sukar untuk dijaga dan diselenggara. Direktori plugin yang teratur biasanya merangkumi bahagian-bahagian berikut:
* 主插件文件:plugin-name.php
* includes/ Indeks: Menyimpan fail-fail kelas atau fungsi yang berkaitan dengan fungsi utama aplikasi.
* admin/ Indeks: Menyimpan kod yang berkaitan dengan bahagian belakang (backend), CSS, dan JavaScript.
* public/ Indeks: Menyimpan kod, CSS, dan JavaScript yang berkaitan dengan bahagian hadapan (front end) aplikasi.
* assets/ Indeks: Menyimpan fail-fail gambar, fail-fail gaya (style sheets) dan fail-fail skrip (scripts).
* languages/ Indeks: Menyimpan fail terjemahan antarabangsa (.pot, .po, .mo).
* uninstall.php Fail: Pilihan yang digunakan untuk membersihkan pangkalan data apabila tambahan (plugin) dihapuskan.

Diperoleh daripada WEB\nDisyorkan untuk membaca. Panduan lengkap untuk pembangunan plugin WordPress: dari pengenalan hingga teknik praktikal.

Konsep dan Teknologi Pembangunan Teras

Inti pembangunan plugin untuk WordPress terletak pada pemahaman dan penggunaan yang mahir terhadap API (Application Programming Interface) yang disediakan olehnya, yang terutamanya termasuk Action Hooks, Filter Hooks, dan Shortcodes.

Menguasai penggunaan action hooks

Action hooks membenarkan anda “menyisipkan” kod anda sendiri pada titik masa tertentu semasa WordPress dijalankan. Gunakanlah dengan bijak. add_action() Fungsi tersebut membenarkan anda untuk menggantungkan fungsi kustom anda pada satu “hook” (titik pengaitan).

Sebagai contoh, kod di bawah ini menambahkan satu baris tag meta yang dibuat khas di bahagian atas setiap halaman:

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_custom_meta() {
    echo '<meta name="my-custom-meta" content="value">';
}
add_action( 'wp_head', 'myplugin_add_custom_meta' );

Satu lagi contoh yang sering digunakan adalah untuk melaksanakan beberapa operasi pengaturan awal (initialization) apabila plugin diaktifkan, seperti membuat jadual dalam pangkalan data. Ini memerlukan fungsi-fungsi tersebut dipasang (mounted) pada sistem yang sesuai. register_activation_hook Pada kait itu.

Menggunakan penapis untuk mengubah kandungan

Filter hooks digunakan untuk mengubah data semasa WordPress sedang memprosesnya. Anda boleh menggunakannya… add_filter() Fungsi digunakan untuk mengubah kandungan teks, nilai pilihan, dan sebagainya. Fungsi penapis (filter function) mesti mempunyai satu nilai pulangan.

Contoh di bawah ini akan menambahkan segmen teks khusus secara automatik pada akhir kandungan artikel:

Diperoleh daripada WEB\nDisyorkan untuk membaca. Panduan lengkap untuk pembangunan plugin WordPress: Membina plugin pertama anda daripada awal hingga akhir.

function myplugin_modify_post_content( $content ) {
    if ( is_single() ) {
        $custom_text = '<p><em>Terima kasih kerana membaca artikel ini!</em></p>';
        $content .= $custom_text;
    }
    return $content;
}
add_filter( 'the_content', 'myplugin_modify_post_content' );

Mencipta dan Mengurus Kod Pendek

Kod pendek membolehkan pengguna dengan mudah memasukkan kandungan dinamik yang dihasilkan oleh plugin ke dalam artikel, halaman atau alat kecil. add_shortcode() Fungsi tersebut boleh mendaftarkan kod pendek yang baru.

Daftar sebuah akaun dengan nama [greeting] Kod ringkas ini boleh menunjukkan ucapan selamat yang berbeza berdasarkan masa:

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.
function myplugin_greeting_shortcode( $atts ) {
    $hour = date( 'G' );
    $greeting = ( $hour ? 'Selamat pagi!' : ( ($hour) &lt; 18 ) ? &#039;下午好!&#039; : &#039;晚上好!&#039; );
    return &#039;<div class="greeting">'`. esc_html($greeting)`.'</div>'php
add_shortcode('greeting', 'myplugin_greeting_shortcode');

Keamanan plugin dan pengurusan data

Membangunkan sebuah plugin yang selamat merupakan langkah pertama dalam melindungi laman web dan data pengguna. Ini melibatkan pengesahan input, pembebasan output (output escaping), pemeriksaan hak akses, serta pemprosesan data dengan cara yang selamat.

Melaksanakan pengesahan data dan pengekstrakan (data validation and escaping)

Jangan pernah mempercayai sebarang input yang diberikan oleh pengguna. Sebelum data disimpan ke dalam pangkalan data atau dipaparkan di browser, ia mesti disahkan dan diubah suai (dengan proses “escaping”) terlebih dahulu.

  • Verifikasi: Gunakan sanitize_text_field(), sanitize_email(), intval() Fungsi-fungsi seperti ini digunakan untuk membersihkan input yang diberikan oleh pengguna.
  • Escape: Semasa mengeluarkan data ke dalam HTML, JavaScript, atau URL, gunakan fungsi pengelakan (escape function) yang sesuai. esc_html(), esc_js(), esc_url()

Sebagai contoh, cara untuk mengendalikan dan memaparkan nama pengguna yang dihantar melalui borang dengan selamat adalah seperti berikut:

$user_input = $_POST['username'] ?? ''; // 使用空合并运算符提供默认值
$clean_username = sanitize_text_field( $user_input );
echo '你好,' . esc_html( $clean_username );

Menggunakan API Pilihan WordPress

Untuk tetapan yang mudah yang perlu disimpan (seperti suis, teks, dll.), anda harus menggunakan API Pilihan WordPress. Ia menyediakan… add_option(), get_option(), update_option()delete_option() Fungsi-fungsi seperti ini membenarkan penyimpanan data dengan selamat. wp_options Dalam jadual.

Create a plugin setting and retrieve it:

// 保存一个选项
update_option( 'myplugin_setting_color', '#336699' );

// 获取一个选项,如果不存在则使用默认值
$color = get_option( 'myplugin_setting_color', '#000000' );

Mencipta jadual pangkalan data khusus

Apabila sebuah plugin memerlukan untuk menyimpan data berstruktur yang kompleks, mungkin perlu untuk membuat jadual pangkalan data khusus (custom database tables). Ini biasanya perlu dilakukan semasa plugin diaktifkan, dan perlu mengikut konvensi pemodelan pangkalan data WordPress.

my-first-plugin.php Dalam kod tersebut, fungsi untuk membuat jadual telah ditambahkan untuk mengaktifkan pengaitan (hook) bagi plugin.

function myplugin_create_custom_table() {
    global $wpdb;
    $table_name = $wpdb->prefix . 'myplugin_items'; // 使用 $wpdb->prefix 确保表前缀正确
    $charset_collate = $wpdb->get_charset_collate();

    $sql = "CREATE TABLE IF NOT EXISTS $table_name (
        id mediumint(9) NOT NULL AUTO_INCREMENT,
        name varchar(100) NOT NULL,
        created_at datetime DEFAULT CURRENT_TIMESTAMP NOT NULL,
        PRIMARY KEY (id)
    ) $charset_collate;";

    require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
    dbDelta( $sql );
}
register_activation_hook( __FILE__, 'myplugin_create_custom_table' );

Membina antaramuka pengurusan latar belakang untuk plugin

Mencipta halaman tetapan latar belakang yang intuitif untuk plugin anda adalah kunci untuk menyediakan pengalaman pengguna yang baik. WordPress menawarkan pelbagai API untuk memudahkan proses penciptaan menu pengurusan, halaman tetapan, dan borang.

Tambahkan menu pengurusan dan sub-menu

Gunakan add_menu_page()add_submenu_page() Fungsi tersebut membenarkan anda menambahkan item menu ke panel sisi (sidebar) pada bahagian pentadbiran WordPress untuk plugin anda.

Kod di bawah ini menambahkan menu utama “My Plugins” dan sub-menu “Settings”:

function myplugin_add_admin_menu() {
    // 添加顶级菜单
    add_menu_page(
        '我的插件设置',          // 页面标题
        '我的插件',             // 菜单标题
        'manage_options',       // 所需权限
        'myplugin-dashboard',   // 菜单 Slug
        'myplugin_dashboard_page', // 回调函数,用于输出页面内容
        'dashicons-admin-generic', // 图标
        30                      // 菜单位置
    );

    // 添加子菜单
    add_submenu_page(
        'myplugin-dashboard',   // 父菜单 Slug
        '插件设置',             // 页面标题
        '设置',                 // 菜单标题
        'manage_options',       // 权限
        'myplugin-settings',    // 子菜单 Slug
        'myplugin_settings_page' // 回调函数
    );
}
add_action( 'admin_menu', 'myplugin_add_admin_menu' );

// 定义“仪表盘”页面的回调函数
function myplugin_dashboard_page() {
    echo '<div class="wrap"><h1>My Plugin Dashboard</h1></div>';
}

// 定义“设置”页面的回调函数
function myplugin_settings_page() {
    echo '<div class="wrap"><h1>Tetapan-tetapan plugin saya</h1></div>';
}

API untuk Tetapan Integrasi untuk Membina Borang

Penyediaan API dalam WordPress menawarkan cara yang selamat dan standard untuk membuat, mengesahkan, dan menyimpan tetapan borang. Proses ini melibatkan pendaftaran tetapan, menambahkan kawasan tetapan, dan medan-medan yang diperlukan.

Berikut adalah contoh mudah untuk membuat halaman tetapan yang mengandungi satu bidang teks:

function myplugin_settings_init() {
    // 注册一个新的设置项 “myplugin_settings”
    register_setting( 'myplugin_settings_group', 'myplugin_settings' );

    // 添加一个新的设置区域
    add_settings_section(
        'myplugin_section_basic',
        '基础设置',
        null, // 区域描述的回调函数,这里不需要
        'myplugin-settings' // 页面 Slug
    );

    // 在区域内添加一个字段
    add_settings_field(
        'myplugin_field_api_key',
        'API 密钥',
        'myplugin_field_api_key_callback', // 渲染字段 HTML 的回调函数
        'myplugin-settings',
        'myplugin_section_basic'
    );
}
add_action( 'admin_init', 'myplugin_settings_init' );

// 字段的回调函数
function myplugin_field_api_key_callback() {
    $options = get_option( 'myplugin_settings' );
    $value = $options['api_key'] ?? '';
    echo '<input type="text" name="myplugin_settings[api_key]" value="' . esc_attr( $value ) . '" class="regular-text">';
}

// 修改之前的设置页面回调函数,以输出表单
function myplugin_settings_page() {
    ?&gt;
    <div class="wrap">
        <h1>Tetapan-tetapan plugin saya</h1>
        <form action="/ms/options.php/" method="post" data-trp-original-action="options.php">
            <?php
            settings_fields( 'myplugin_settings_group' ); // 输出必要的安全字段
            do_settings_sections( 'myplugin-settings' ); // 输出所有设置区域和字段
            submit_button(); // 输出提交按钮
            ?>
        <input type="hidden" name="trp-form-language" value="ms"/></form>
    </div>
    &lt;?php
}

RINGKASAN

Pembangunan plugin untuk WordPress adalah proses yang bermula dengan memahami struktur asas, kemudian secara beransur-ansur mempelajari API dan aspek keselamatan yang terlibat, sehingga akhirnya membina antara muka pengguna yang lengkap. Kuncinya adalah untuk mengikuti standard pengkodan dan amalan terbaik WordPress, seperti penggunaan hook yang betul, pengendalian keselamatan data yang ketat, serta penggunaan API pilihan (options API) dan API tetapan (settings API) yang disediakan oleh WordPress. Bermula dengan membuat fail ulasan (comment file) untuk kepala plugin yang ringkas, tambahkan fungsi seperti tindakan (actions), penapis (filters), dan kod pendek (shortcodes), seterusnya mengurus pangkalan data dan antara muka pentadbiran (backend interface). Setiap langkah dibina atas rangka yang kuat dan stabil yang disediakan oleh WordPress. Dengan belajar dan mengamalkan langkah-langkah ini secara sistematik, anda akan dapat membangunkan plugin WordPress yang mempunyai ciri-ciri yang lengkap, selamat, boleh dipercayai, dan mudah diselenggara, seterusnya menyumbang kepada ekosistem WordPress yang besar di seluruh dunia.

FAQ - Soalan Lazim

Apa pengetahuan asas yang diperlukan untuk membangunkan plugin WordPress?

Untuk mengembangkan plugin WordPress, anda perlu menguasai bahasa pengaturcaraan PHP, kerana kod inti plugin ditulis dalam PHP. Pada masa yang sama, anda juga perlu mempunyai pengetahuan asas tentang HTML, CSS, dan JavaScript untuk membina antara muka pengguna (frontend) dan interaksi yang diperlukan. Yang paling penting, anda harus memahami konsep-konsep asas WordPress, seperti “hook” (Actions dan Filters), pengulangan (The Loop), hierarki templat, serta struktur pangkalan data WordPress.

Bagaimana untuk membaiki (debug) plugin WordPress saya?

Pertama sekali, wp-config.php Aktifkan mod pembangunan (debug mode) untuk WordPress dalam fail tersebut. WP_DEBUG Konstanta ditetapkan kepada trueIni akan memaparkan ralat dan amaran PHP di skrin. Selain itu, ia juga boleh digunakan untuk… error_log() Fungsi tersebut akan menulis maklumat pembaikan ke log ralat pada pelayan. Selain itu, menginstal plugin pembaikan yang profesional, seperti Query Monitor, membolehkan anda melihat maklumat terperinci secara masa nyata mengenai pertanyaan pangkalan data, pelaksanaan fungsi tertentu (hook), dan pengambilan skrip, yang merupakan alat yang sangat penting dalam proses pembangunan.

Bagaimanakah saya boleh menjadikan plugin saya menyokong berbilang bahasa (internasionalisasi)?

WordPress menggunakan rangka kerja teknologi GNU gettext untuk melaksanakan pengantarabangsaan (i18n). Pertama sekali, dalam kod plugin, semua rentetan yang perlu diterjemahkan harus ditandai dengan tag tertentu. ()_e() Tunggu fungsi terjemahan untuk memproses pakej, dan untuk () Fungsi tersebut menentukan Domain Tekst (Text Domain) yang perlu didefinisikan di bahagian atas plugin. Kemudian, alat seperti Poedit digunakan untuk mengimbas kod sumber plugin tersebut, dan hasilnya digunakan untuk menghasilkan… .pot Fail templat, dan berdasarkan ini, cipta versi dalam bahasa yang berbeza. .po Dan selepas dikompilasi. .mo Fail tersebut perlu diletakkan di dalam plugin. /languages/ Dalam direktori tersebut. Akhirnya, gunakan… load_plugin_textdomain() Function loading.

Bagaimana untuk menghantar plugin saya ke direktori plugin rasmi WordPress?

Sebelum menghantar plugin ke direktori rasmi, pastikan ia memenuhi sepenuhnya spesifikasi dan garis panduan pembangunan plugin rasmi. Anda perlu memiliki akaun WordPress.org, kemudian isi borang di halaman penghantaran plugin. Pasukan pengawasan akan memeriksa keselamatan kod, lesen (mesti serasi dengan GPL), kualiti kod, dokumentasi, dan keserasian plugin tersebut. Setelah lulus pengawasan, anda akan mendapat alamat repositori SVN. Setelah menghantar kod melalui SVN, plugin tersebut akan muncul dalam direktori rasmi. Proses ini mungkin mengambil masa beberapa minggu, dan terdapat standard pengawasan yang terperinci.