Panduan Muktamad untuk Pembangunan Plugin WordPress: Dari Pemula ke Pakar

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

Untuk membangunkan pemalam WordPress, anda perlu terlebih dahulu memahami struktur asasnya. Pemalam pada dasarnya adalah satu atau lebih fail PHP yang mematuhi spesifikasi khusus WordPress dan berinteraksi dengan teras melalui sistem hook, sekali gus menambah atau mengubah suai fungsi laman web. Untuk membangunkan pemalam, anda memerlukan sekurang-kurangnya satu fail utama yang mengandungi komen header pemalam piawai, yang penting untuk WordPress mengenali pemalam tersebut.

Bina pemalam pertama anda

Mari kita mulakan dengan mencipta pemalam “Hello World” yang paling mudah; proses ini akan membantu anda membiasakan diri dengan struktur pemalam tersebut dan cara mengaktifkannya serta menyahtaktifkannya.

Buat fail plugin utama

Pertama, di direktori di mana WordPress anda dipasang,wp-content/pluginsDalam folder itu, buat folder baru, contohnyamy-first-pluginDi dalam folder tersebut, cipta satu folder bernamamy-first-plugin.phpfail PHP utama. Nama fail ini biasanya sepadan dengan nama folder.

Diperoleh daripada WEB\nDisyorkan untuk membaca. Panduan Terakhir Pembangunan Plugin WordPress: Membina Plugin Pertama Anda Dari Kosong

Bukamy-first-plugin.phpDalam fail, masukkan maklumat header plugin standard berikut:

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:       这是一个用于学习的简单Hello World插件。
 * Version:           1.0.0
 * Author:            你的名字
 * Author URI:        https://example.com
 * License:           GPL v2 or later
 * Text Domain:       my-first-plugin
 */

Komen ini sangat penting. WordPress mengimbaswp-content/pluginsdan semua fail PHP dalam subdirektori-subdirektorinyaPlugin Name:Kenal pasti pemalam dan paparkan ia pada halaman pengurusan pemalam dalam panel pentadbir.

Melaksanakan fungsi teras dan mengaktifkan hook

Seterusnya, kita akan menambah ciri mudah pada pemalam: memaparkan satu baris teks tersuai di bahagian bawah laman web. Pada masa yang sama, kita akan menggunakan cangkuk kitaran hayat WordPress untuk menunjukkan tindakan yang boleh dilakukan apabila pemalam diaktifkan atau dinyahaktifkan.

Di bawah komen tajuk, teruskan dengan menambah kod berikut:

// Takrifkan fungsi untuk memaparkan teks di kaki halaman
function my_first_plugin_display_footer_text() {
    echo '<p style="text-align: center;">Selamat menggunakan plugin WordPress pertama saya!</p>';
}
// Gantung fungsi kami pada hook tindakan ‘wp_footer’
add_action( 'wp_footer', 'my_first_plugin_display_footer_text' );

// Tindakan yang akan dilakukan apabila pemalam diaktifkan
function my_first_plugin_activate() {
    // Anda boleh mencipta jadual pangkalan data atau menetapkan pilihan lalai di sini
    update_option( 'my_first_plugin_installed', current_time( 'mysql' ) );
}
register_activation_hook( __FILE__, 'my_first_plugin_activate' );

// Tindakan yang akan dilakukan apabila pemalam dinyahaktifkan
function my_first_plugin_deactivate() {
    // Membersihkan data sementara, tetapi mengekalkan sebarang data yang dicipta oleh pengguna
    delete_option( 'my_first_plugin_installed' );
}
register_deactivation_hook( __FILE__, 'my_first_plugin_deactivate' );

Sekarang, log masuk ke papan pemuka WordPress anda, pergi ke halaman “Plugins”, dan anda sepatutnya melihat plugin bernama “My First Plugin”. Klik “Activate”, kemudian lawati bahagian hadapan laman web anda, tatal ke bawah, dan anda sepatutnya melihat teks tersuai yang anda tambah. Contoh mudah ini menunjukkan proses asas untuk mencipta dan menjalankan plugin.

Diperoleh daripada WEB\nDisyorkan untuk membaca. Panduan Lengkap Pembangunan Plugin WordPress: Membina Plugin Pertama Anda Dari Kosong

Penyelaman Mendalam ke dalam Sistem Hook WordPress

Hooks adalah asas pembangunan pemalam WordPress. Ia membolehkan anda menyisipkan kod anda sendiri pada titik tertentu dalam pelaksanaan kod teras tanpa mengubah suai fail teras. Hooks secara umumnya dibahagikan kepada dua jenis: tindakan dan penapis.

Penggunaan Hook Aksi (Action Hooks)

Hook tindakan dijalankan apabila peristiwa tertentu berlaku, seperti apabila artikel diterbitkan atau apabila tajuk atau kaki halaman dimuat. Hook ini tidak dimaksudkan untuk mengembalikan sebarang nilai; ia hanya “melaksanakan sepotong kod”. Kita telah menggunakannya dalam plugin pertama kita.wp_footerPengaitan tindakan ini.

Satu lagi contoh biasa ialahinitHook dicetuskan semasa pengesahan awal WordPress dan lazimnya digunakan untuk mendaftar jenis kiriman tersuai atau taksonomi.

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_plugin_custom_init() {
    // 在这里注册自定义文章类型
}
add_action( 'init', 'my_plugin_custom_init' );

Hook tindakan telah diluluskanadd_action( $hook_name, $function_to_add, $priority, $accepted_args )Pemasangan fungsi.

Menggunakan hook penapis

Kait penapis digunakan untuk mengubah suai data. Ia dihantar kepada anda sebelum data itu digunakan (contohnya apabila ia disimpan ke dalam pangkalan data atau dikeluarkan ke pelayar); anda memprosesnya dan kemudian memulangkan nilai yang telah diubah suai. Sebagai contoh,the_contentPenapis membolehkan anda menyunting kandungan artikel.

function my_plugin_add_disclaimer_to_content( $content ) {
    if ( is_single() ) {
 $disclaimer = '<p><em>Artikel ini telah diproses oleh pemalam saya.</em></p>';
 $content .= $disclaimer;
    }
    return $content; // Mesti mengembalikan kandungan yang diubah suai
}
add_filter( 'the_content', 'my_plugin_add_disclaimer_to_content' );

Menyaring cangkuk melaluiadd_filter( $hook_name, $function_to_add, $priority, $accepted_args )Pengaitan fungsi. Keutamaan$priorityIni menentukan urutan di mana pelbagai fungsi dilaksanakan apabila dilampirkan pada hook yang sama; semakin rendah nombor, semakin tinggi keutamaan.

Diperoleh daripada WEB\nDisyorkan untuk membaca. Panduan untuk pemula dalam pembangunan plugin WordPress: Membina plugin pertama anda dari awal.

Arkitekti Pemalam dan Amalan Terbaik Keselamatan

Apabila fungsi pemalam menjadi semakin kompleks, seni bina yang kukuh dan langkah keselamatan yang mantap adalah kunci untuk memastikan pemalam kekal stabil, mudah diselenggara dan selamat.

Menggunakan Pemrograman Berorientasikan Objek

Untuk pemalam yang kaya dengan ciri, disyorkan agar anda menyusun kod anda menggunakan kelas. Ini membantu mengandungi fungsi, mengelakkan konflik nama fungsi, dan menjadikan struktur kod lebih jelas.

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.
&lt;?php
/**
 * Nama Pemalam: Pemalam Contoh Lanjutan
 */
if ( ! class_exists( &#039;Advanced_Sample_Plugin&#039; ) ) {
    class Advanced_Sample_Plugin {
 public function __construct() {
 // Hooks dalam pembina
            add_action( &#039;wp_footer&#039;, array( $this, &#039;display_message&#039; ) );
 add_filter( &#039;the_title&#039;, array( $this, &#039;modify_title&#039; ) );
 }

public function display_message() {
 echo &#039;<p>Satu mesej daripada kelas Advanced Plugins.</p>';
 }

public function modify_title( $title ) {
 return 'Awalan - ' . $title;
 }
    }
    // Inisialisasi kelas pemalam
    new Advanced_Sample_Plugin();
}

Melaksanakan langkah-langkah keselamatan

Keselamatan pemalam WordPress adalah sangat penting. Peraturan emas ialah: jangan pernah mempercayai input pengguna. Semua data daripada$_GET$_POST$_COOKIESemua data yang diperoleh daripada pembolehubah superglobal mesti disahkan, disanitasi dan dielakkan.

1. Pengesahan: Semak sama ada data mematuhi format yang dijangkakan (contohnya sama ada ia alamat e-mel atau nombor). Gunakansanitize_email()is_email()Fungsi-fungsi seperti itu.
2. Pengesahan: Buang sebarang aksara yang tidak sah atau berbahaya daripada data. Untuk input teks, gunakansanitize_text_field(). Untuk kandungan di mana HTML dibenarkan, gunakanwp_kses_post()wp_kses()
3. Pelarian: Pastikan data disulitkan dengan selamat apabila dikeluarkan ke HTML, JavaScript atau URL. Gunakanesc_html()esc_js()esc_url()Fungsi-fungsi seperti itu.

Sebagai contoh, mengendalikan sifat kod pendek:

function my_shortcode_handler( $atts ) {
    // Gunakan shortcode_atts untuk menetapkan nilai lalai dan mengekstrak atribut
    $atts = shortcode_atts( array(
 'url' =&gt; '#',
    ), $atts, 'my_shortcode' );

// Bersihkan dan lari daripada atribut URL
    $clean_url = esc_url( $atts['url'] );

return "<a href='/ms/{$clean_url}/'>Pautan selamat</a>";
}
add_shortcode( 'my_shortcode', 'my_shortcode_handler' );

Menambah antara muka pentadbiran dan pengantarabangsaan pada pemalam

Plugin yang matang biasanya memerlukan pilihan konfigurasi dan harus direka untuk menyokong pelbagai bahasa.

Buat halaman Tetapan Pentadbiran

Gunakan API Tetapan WordPress untuk mencipta halaman pentadbiran yang selamat dan piawai. Ini adalah pendekatan yang disyorkan, kerana ia mengendalikan keselamatan (pengesahan nonce) dan memastikan keseragaman dalam antaramuka borang.

Berikut adalah contoh ringkas untuk menambah menu aras atas dan halaman tetapan:

class My_Plugin_Admin {
    public function __construct() {
    add_action( 'admin_menu', array( this, 'add_admin_menu' ) );
    add_action( 'admin_init', array( this, 'settings_init' ) );
    }

public function add_admin_menu() {
        add_menu_page(
 'My Plugin Settings', // Tajuk halaman
 'My Plugin',     // Tajuk menu
 'manage_options', // Kebenaran
 'my-plugin', // Slug menu
 array( $this, 'options_page_html' ) // Fungsi callback untuk memaparkan kandungan halaman
 );
    }

public function settings_init() {
 register_setting( 'my_plugin_settings', 'my_plugin_options' ); // Daftar tetapan

// Tambah bahagian tetapan dan medan
 add_settings_section( 'my_plugin_section', 'Tetapan Utama', null, 'my-plugin' );
        add_settings_field( 'api_key', 'Kunci API', array( $this, 'api_key_field_html' ), 'my-plugin', 'my_plugin_section' );
    }

public function api_key_field_html() {
 $options = get_option( 'my_plugin_options' );
 ?&gt;
        <input type='text' name='my_plugin_options[api_key]' value='<?php echo esc_attr( $options['api_key'] ?? '' ); ?>'>
        <?php
    }

public function options_page_html() {
        // 检查用户权限
        if ( ! current_user_can( 'manage_options' ) ) return;
        ?>
        <div class="wrap">
            <h1><?php echo esc_html( get_admin_page_title() ); ?></h1>
            <form action="/ms/options.php/" method="post" data-trp-original-action="options.php">
                <?php
                settings_fields( 'my_plugin_settings' );
                do_settings_sections( 'my-plugin' );
                submit_button();
                ?>
            <input type="hidden" name="trp-form-language" value="ms"/></form>
        </div>
        &lt;?php
    }
}
new My_Plugin_Admin();

Mengimplementasikan pengantarabangsaan plugin.

Untuk memastikan pemalam ini boleh digunakan oleh pengguna di seluruh dunia, ia perlu menyokong pelbagai bahasa. Ini dicapai dengan menggunakan__( ‘Text’, ’text-domain’ )_e( ‘Text’, ’text-domain’ )Ini dicapai dengan membungkus semua teks yang kelihatan kepada pengguna dalam fungsi terjemahan. Anda telah mentakrifkannya sebelum ini dalam komen di bahagian atas pemalam.Text Domain: my-first-pluginItulah sebenarnya fungsinya.

1. Dalam kod, gunakan fungsi terjemahan untuk semua rentetan yang perlu diterjemahkan:

    echo __( ‘欢迎使用我的插件!’, ‘my-first-plugin’ );
    $title = esc_html__( ‘设置页面’, ‘my-first-plugin’ );

2. Gunakan alat seperti Poedit untuk mengimbas rentetan terjemahan dalam kod pemalam dan menjana.potFail templat. Penerjemah menggunakannya untuk mencipta versi yang sepadan bagi setiap bahasa..poDan selepas dikompilasi..moDokumen (sepertizh_CN.po/mo)。
3. Letakkan fail bahasa ini dalam plugin tersebut.languagesfolder. WordPress akan secara automatik memuatkan terjemahan yang relevan berdasarkan tetapan bahasa laman web.

RINGKASAN

Pembangunan pemalam WordPress adalah satu proses yang merangkumi daripada skrip ringkas hingga aplikasi kompleks. Kuncinya terletak pada memahami dan menguasai sistem hook, menggunakan tindakan dan penapis untuk menyepadukan fungsi anda dengan lancar ke dalam kitar hayat WordPress. Mematuhi prinsip seni bina berorientasikan objek boleh meningkatkan organisasi dan kebolehlihatan kod anda. Keselamatan adalah teras pembangunan; semua input pengguna mesti disahkan, disanitasi dan keluaran mesti dielakkan. Akhir sekali, cipta antaramuka pentadbir profesional menggunakan API Tetapan dan gunakan fungsi antarabangsa untuk menjadikan pemalam anda boleh diakses di seluruh dunia. Memulakan dengan mencipta yang mudahmy-first-plugin.phpMulakan dengan melaksanakan konsep-konsep ini secara berperingkat, dan anda akan dapat membangunkan pemalam WordPress yang berkuasa, selamat dan popular.

FAQ - Soalan Lazim

Apakah pengetahuan asas yang diperlukan untuk membangunkan plugin WordPress?

Anda perlu mahir dalam PHP, kerana pemalam terutamanya ditulis dalam bahasa ini. Anda juga memerlukan pemahaman asas tentang HTML, CSS dan JavaScript untuk membina antara muka hadapan dan interaksi. Yang paling penting, anda perlu memahami cara kerja asas WordPress, seperti tema, hook, gelung dan kaedah penyimpanan data.

Bolehkah saya menguji pemalam ini secara tempatan tanpa menjejaskan laman web langsung?

Sudah tentu, dan ia sangat disyorkan. Anda harus menjalankan pembangunan pemalam dalam persekitaran pembangunan tempatan (seperti yang disediakan menggunakan alat seperti XAMPP, MAMP atau Local by Flywheel) atau pada pelayan ujian berasingan. Ini akan mengelakkan laman web langsung anda daripada rosak atau data hilang akibat ralat pengkodan.

Bagaimana untuk membaiki (debug) kod plugin saya?

WordPress menyediakan pelbagai alat penyahpepijat. Pertama sekali, dalamwp-config.phpAktifkan mod debug dalam fail: DefineWP_DEBUGConstantnya adalahtrue. Ini akan memaparkan ralat PHP, amaran dan notis terus pada halaman. Untuk penyahpepijat yang lebih kompleks, anda boleh menggunakanerror_log()Fungsi ini menulis maklumat ke dalam log ralat pelayan, atau menggunakan pemalam penyahpepijat khusus seperti Query Monitor, yang menyediakan maklumat terperinci tentang pertanyaan pangkalan data, hook, ralat PHP dan sebagainya.

Setelah pembangunan selesai, bagaimanakah cara untuk menghantar plugin tersebut ke direktori rasmi WordPress?

Anda perlu melayari WordPress.org dan membuat akaun. Seterusnya, anda perlu menghantar kod pemalam anda ke repositori SVN yang disediakan oleh WordPress menggunakan alat Subversion (SVN). Sebelum menghantar, sila pastikan kod pemalam anda mematuhi piawaian dan garis panduan pembangunan pemalam rasmi, termasuk keperluan berkaitan keselamatan, kualiti kod, dokumentasi dan antarabangsa. Setelah diluluskan, pemalam anda akan muncul dalam direktori rasmi untuk pengguna memuat turun dan memasang.