Panduan lengkap untuk pembangunan plugin WordPress: dari awal hingga penerbitan plugin.

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

Preparasi dan pembinaan persekitaran.

Sebelum mula menulis sebarang kod, anda perlu memastikan bahawa anda mempunyai persekitaran pembangunan yang betul. Ini bukan sahaja dapat meningkatkan kecekapan, tetapi juga merupakan asas untuk mengeluarkan plugin yang berkualiti tinggi.

Pertama sekali, anda memerlukan sebuah persekitaran pelayan tempatan atau jarak jauh yang menyokong WordPress. Alat pembangunan tempatan seperti Local by Flywheel, XAMPP, atau MAMP disyorkan, kerana ia dapat mengkonfigurasi PHP, MySQL, dan pelayan web dengan cepat untuk anda. Kod asas WordPress boleh dimuat turun dari laman web rasminya.

Anda memerlukan sebuah editor kod atau persekitaran pembangunan terintegrasi (IDE), seperti Visual Studio Code, PhpStorm, atau Sublime Text. Alat-alat ini menyediakan ciri-ciri seperti penyorotan sintaks, autocompletion kod, dan kemudahan untuk membetulkan ralat (debugging), yang sangat penting untuk proses pembangunan.

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

Akhir sekali, saya sangat mengesyorkan untuk membuat sebuah repositori sistem kawalan versi, seperti di GitHub atau GitLab. Walaupun plugin anda kecil, penggunaan Git untuk kawalan versi dapat membantu anda menjejak perubahan, bekerjasama dalam pembangunan, dan memudahkan proses penghantaran plugin tersebut ke direktori plugin rasmi WordPress pada masa akan datang.

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.

Mencipta fail plugin pertama

Semua plugin WordPress disimpan di… wp-content/plugins Ia terdapat dalam direktori tersebut. Sebuah plugin boleh menjadi sebuah fail yang berdiri sendiri, atau ia boleh menjadi sebuah direktori yang mengandungi beberapa fail. Cara yang paling asas adalah untuk bermula dengan satu fail sahaja.

Menulis maklumat kepala untuk plugin

Setiap plugin WordPress mesti mengandungi blok ulasan PHP tertentu dalam fail utama, yang dikenali sebagai “header plugin”. WordPress menggunakan maklumat ini untuk mengenal pasti dan memaparkan plugin tersebut dalam antara muka pengurusan latar belakang. Header yang paling asas mesti mengandungi nama plugin tersebut.

<?php
/**
 * Plugin Name:       我的第一个插件
 * Plugin URI:        https://example.com/my-first-plugin
 * Description:       这是一个简短的描述,说明这个插件是做什么的。
 * 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 mendefinisikan identiti asas bagi plugin tersebut.Plugin Name Ia adalah penting, dan maklumat lain seperti nombor versi serta bidang teks juga sangat penting untuk proses penerbitan. Simpan fail ini sebagai… my-first-plugin.php Dan diletakkan di plugins Dalam direktori tersebut, anda boleh melihat dan mengaktifkannya pada halaman plugin di panel pentadbiran WordPress.

Mencipta fungsi yang mudah

Setelah plugin diaktifkan, ia masih tidak mempunyai sebarang fungsi pada masa ini. Mari kita tambah satu fungsi yang mudah, seperti menambahkan baris teks di bahagian kaki laman web (footer). Ini memerlukan penggunaan “core action hook” dalam WordPress.

Diperoleh daripada WEB\nDisyorkan untuk membaca. Panduan Lengkap Pembangunan Plugin WordPress: Dari Permulaan Hingga Mahir Membina Fungsi Khusus

// 这个函数用于输出自定义文本
function my_first_plugin_add_footer_text() {
    echo '<p style="text-align: center;">Terima kasih kerana menggunakan plugin pertama saya!</p>';
}
// 将上面的函数挂载到 WordPress 的 wp_footer 钩子上
add_action( 'wp_footer', 'my_first_plugin_add_footer_text' );

Letakkan kod tersebut di bawah ulasan pada bahagian atas plugin. Setelah menyimpan fail, muat semula halaman web anda, dan anda sepatutnya dapat melihat baris teks tersebut di bahagian bawah halaman. Dengan contoh ini, anda telah mula menggunakan sistem hook dalam WordPress untuk memperluas fungsi-fungsi aplikasi tersebut.

Pembangunan Teras: Hook dan Filter

Inti pembangunan plugin WordPress adalah mekanisme Hook, yang membenarkan anda menyisipkan kod anda pada masa atau tempat yang tertentu. Hook terbahagi kepada dua jenis: Action dan Filter.

(Menggunakan Action Hooks)

Hook fungsi membenarkan anda menjalankan fungsi pada titik tertentu dalam kitaran hayat WordPress. Seperti contoh yang diberikan di atas, penggunaan hook membolehkan teks ditambahkan ke bahagian kaki halaman (footer) dalam WordPress. wp_footer Tindakan. Satu lagi hook yang sering digunakan adalah… initIa diaktifkan semasa WordPress dimulakan, dan sering digunakan untuk mendaftar jenis artikel atau kategori yang dibuat sendiri.

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() {
    // 在这里执行初始化代码
    error_log('我的插件已随 WordPress 初始化!');
}
add_action( 'init', 'my_plugin_custom_init' );

Memahami dan menggunakan hook tindakan dengan baik adalah kunci kepada integrasi yang mendalam antara plugin dan core WordPress.

Menggunakan penapis untuk mengubah kandungan

Hook untuk penapis membenarkan anda mengubah data yang dihasilkan oleh WordPress semasa proses pemprosesan. Sebagai contoh, jika anda ingin mengubah teks yang terdapat sebelum tajuk artikel, anda boleh menggunakannya. the_title Penapis.

function my_plugin_modify_title( $title, $id = null ) {
    // 只在主循环和单篇文章页为标题添加前缀
    if ( in_the_loop() && is_single() ) {
        return '【推荐】' . $title;
    }
    return $title;
}
add_filter( 'the_title', 'my_plugin_modify_title', 10, 2 );

Di sini 10 Ini adalah keutamaan lalai.2 Ini menunjukkan bahawa fungsi penapisan tersebut menerima dua parameter. Dengan menggunakan penapis ini, anda boleh mengubah hampir semua kandungan yang dihasilkan oleh WordPress dengan selamat.

Diperoleh daripada WEB\nDisyorkan untuk membaca. Dari kosong ke satu: Panduan langkah demi langkah untuk menguasai kemahiran asas pembangunan plugin WordPress

Struktur plugin yang teratur dan ciri-ciri lanjutan

Apabila anda mula menambah lebih banyak fungsi, menyimpan semua kod dalam satu fail utama akan menjadi sukar untuk diuruskan. Struktur yang baik merupakan standard dalam pembangunan plugin yang profesional.

Mengatur fail dan direktori

Sebuah direktori plugin yang teratur mungkin kelihatan seperti berikut:

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.
my-advanced-plugin/
├── my-advanced-plugin.php      // 主插件文件,包含头部和引导代码
├── includes/                   // 主要 PHP 类或函数文件目录
│   ├── class-admin-settings.php
│   ├── class-public-handler.php
├── admin/                     // 仅后台相关文件
│   ├── css/
│   ├── js/
│   └── views/
├── public/                    // 仅前台相关文件
│   ├── css/
│   ├── js/
│   └── views/
├── assets/                    // 共享资源(如图标)
└── languages/                 // 国际化翻译文件

Dalam fail plugin utama, anda hanya perlu bertanggungjawab untuk memuatkan fail-fail anak ini. Anda boleh menggunakan… require_onceinclude_once Penggunaan ayat-ayat tertentu membolehkan komponen-komponen kod tersebut diperkenalkan dengan lebih jelas. Struktur ini menjadikan kod lebih termodul, memudahkan kerjasama antara ahli pasukan dan penyelenggaraan jangka panjang.

Membuat halaman pengurusan

Banyak plugin memerlukan halaman konfigurasi di pihak belakang (backend). WordPress menyediakan fungsi untuk menambahkan halaman menu peringkat atas (top-level) atau sub-menu. Berikut adalah contoh untuk menambahkan halaman menu peringkat atas.

function my_plugin_add_admin_menu() {
    add_menu_page(
        '我的插件设置',    // 页面标题
        '我的插件',        // 菜单标题
        'manage_options', // 权限 capability
        'my-plugin-slug', // 菜单 slug
        'my_plugin_settings_page', // 用于渲染页面的回调函数
        'dashicons-admin-generic', // 图标
        80                  // 菜单位置
    );
}
add_action( 'admin_menu', 'my_plugin_add_admin_menu' );

function my_plugin_settings_page() {
    // 检查用户权限
    if ( !current_user_can( 'manage_options' ) ) {
        wp_die( __( '你没有足够的权限访问此页面。' ) );
    }
    ?&gt;
    <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_options_group' );
            do_settings_sections( 'my-plugin-slug' );
            submit_button();
            ?>
        <input type="hidden" name="trp-form-language" value="ms"/></form>
    </div>
    &lt;?php
}

Kod ini akan menambahkan satu item menu baru ke panel sisi (sidebar) di bahagian belakang WordPress, dan apabila diklik, ia akan memuatkan halaman yang mengandungi borang tetapan. Untuk memastikan ia berfungsi dengan betul, anda juga perlu menggunakan API Tetapan (Settings API) untuk mendaftarkan bidang tetapan (setting fields) dan pilihan (options) yang berkaitan.

Amalan Antarabangsa dan Keselamatan

Sebelum memperkenalkan plugin tersebut kepada khalayak pengguna yang lebih luas, adalah sangat penting untuk memastikan bahawa ia mematuhi amalan terbaik dari segi internationalisasi dan keselamatan.

Pengantarabangsaan plugin

Internationalisasi (i18n) membolehkan plugin anda diterjemahkan ke dalam bahasa lain. Anda perlu menggunakan fungsi lokalisasi yang disediakan oleh WordPress. Adalah amalan terbaik untuk memasukkan sokongan internationalisasi sejak awal pembangunan plugin.

Pertama sekali, pastikan bahawa definisi telah dibuat di bahagian atas plugin (header of the plugin). Text DomainDomain PathKemudian, gantikan semua rentetan yang ditujukan untuk pengguna dengan… ()_e()esc_html() Fungsi-fungsi seperti ini dibungkus dalam kelas atau modul tertentu.

// 在插件代码中
echo '<p>' . esc_html__( '这是一个可以被翻译的段落。', 'my-first-plugin' ) . '</p>';

Selepas itu, gunakan alat seperti Poedit untuk membuatnya. .pot Fail templat yang boleh digunakan oleh penterjemah untuk mencipta versi dalam pelbagai bahasa .po.mo Terjemahkan fail tersebut, dan letakkannya di tempat yang telah ditentukan sebelumnya. /languages Dalam direktori tersebut.

Meningkatkan keselamatan plugin

Keselamatan tidak boleh diabaikan. Prinsip asasnya adalah: mengesahkan input, mengekstrak simbol berbahaya dari output, dan melakukan pemeriksaan hak akses.
1. Pengesahan dan Pemeriksaan Kuasa: Sebarang fungsi yang memproses data pengguna atau membuat permintaan latar belakang mesti memeriksa sama ada pengguna semasa mempunyai kuasa untuk melakukan operasi tersebut. current_user_can()check_admin_referer() Fungsi-fungsi seperti itu.
2. Output Penyamaran: Semasa mengeluarkan sebarang data (terutamanya data dari pengguna atau pangkalan data) ke dalam HTML, JavaScript, atau URL, penyamaran mesti dilakukan.
HTML: esc_html(), esc_attr()
URL: esc_url()
Hanya dalam JavaScript:wp_json_encode()
3. Keselamatan Pangkalan Data: Semasa berinteraksi dengan pangkalan data WordPress, jangan pernah menyatukan klausa SQL secara manual. Gunakan alat yang disediakan oleh WordPress untuk melakukan operasi tersebut. $wpdb Pernyataan persiapan.

    global $wpdb;
    $results = $wpdb->get_results(
        $wpdb->prepare(
            "SELECT * FROM {$wpdb->prefix}my_table WHERE id = %d AND status = %s",
            $user_id,
            $status
        )
    );

Ujian dan penghantaran ke direktori rasmi

Setelah menyelesaikan pembangunan dan ujian asas di persekitaran tempatan, anda perlu melakukan pengesahan menyeluruh di sebuah laman web ujian yang serupa dengan persekitaran pengguna sebenar.

Gunakan sistem kawalan versi untuk membuat versi rasmi bagi plugin anda. Biasanya, anda perlu membuat fail kompresi untuk paket plugin anda. readme.txt Fail tersebut perlu memenuhi format yang ditetapkan oleh WordPress secara rasmi, dan harus mengandungi maklumat tentang plugin, arahan penggunaan, langkah-langkah pemasangan, serta log pembaruan. Fail ini sangat penting untuk dipaparkan di WordPress.org.

Apabila anda bersedia untuk menghantar plugin anda ke direktori plugin rasmi WordPress, anda perlu memiliki akaun WordPress.org. Proses penghantaran perlu mengikut garis panduan komuniti untuk memastikan kualiti kod, keselamatan, dan tiada kandungan berbahaya. Setelah diluluskan, pengguna di seluruh dunia akan dapat mencari dan memasang plugin anda. Ingatlah, anda perlu memastikan plugin anda adalah serasi dengan versi WordPress yang terkini. readme.txt Fail dan satu yang sesuai… svn Gunakan struktur repositori untuk mengurus versi plugin anda.

RINGKASAN

Pembangunan plugin untuk WordPress bermula dengan memahami struktur asasnya, kemudian secara beransur-ansur mempelajari penggunaan sistem hook, mengatur kod secara modular, dan mematuhi piawaian keselamatan serta penyesuaian untuk pelbagai bahasa (internationalization). Dari mencipta sebuah fail yang ringkas hingga membina sebuah plugin yang kompleks dengan halaman pengurusan, setiap langkah bergantung pada pemahaman yang mendalam terhadap arkitektur asas WordPress dan komuniti pembangunnya. Mengikuti amalan terbaik bukan sahaja dapat menjadikan plugin anda lebih stabil dan selamat, tetapi juga memudahkan kerja penyelenggaraan pada masa hadapan, serta membuka peluang untuk menjangkau pasaran pengguna WordPress di seluruh dunia. Pembelajaran berterusan terhadap panduan rasmi dan kod sumber plugin yang berkualiti tinggi merupakan kunci untuk meningkatkan kemahiran pembangunan anda.

FAQ - Soalan Lazim

Apa pengetahuan asas yang diperlukan untuk membangunkan plugin WordPress?
Anda perlu memiliki pengetahuan asas dalam bahasa pengaturcaraan PHP, kerana kod asas WordPress dan pluginnya ditulis dalam PHP. Pemahaman yang asas tentang HTML, CSS, dan JavaScript juga sangat membantu dalam mencipta antara muka pengguna (user interface) dan fungsi interaktif. Selain itu, memahami konsep asas WordPress seperti tema (themes), hook (hook), pengulangan (loop), dan struktur templat (template hierarchy) akan memudahkan proses pembangunan.

Apakah fail-fail yang mesti dimasukkan dalam sebuah plugin?

Plugin yang paling asas hanya memerlukan satu fail PHP utama yang mengandungi maklumat header plugin WordPress yang sah. Walau bagaimanapun, untuk plugin yang lebih kompleks, struktur modular disyorkan, di mana fungsi-fungsi yang berbeza dipisahkan ke dalam fail-fail yang berasingan. Sebagai contoh, logik belakang (backend logic), logik depan (frontend logic), fail sumber (resource files), dan fail untuk pengaturcaraan antarabangsa (internationalization files) disimpan dalam direktori yang sesuai. Ini meningkatkan keterbacaan dan kemudahan penyelenggaraan kod.

Bagaimana untuk menambahkan pilihan tetapan untuk plugin saya?

Disyorkan untuk menggunakan WordPress Settings API untuk menambahkan pilihan tetapan. Ini termasuk penggunaan... register_setting() Daftar satu pilihan, gunakan add_settings_section()add_settings_field() Untuk mendefinisikan kawasan tetapan dan bidang (fields), gunakan fungsi yang sesuai, dan gunakan hasil definisi tersebut dalam fungsi panggilan balik (callback function) pada halaman menu latar belakang plugin. settings_fields()do_settings_sections() Keluarkan borang tersebut. Walaupun penghantaran borang boleh dilakukan secara manual, API Settings dapat menguruskan pengesahan data, penyimpanan, dan pemeriksaan keselamatan secara automatik.

Bagaimana untuk memastikan bahawa plugin saya serasi dengan plugin lain atau tema?

Untuk mencapai tahap keserasian yang maksimum, sila sentiasa gunakan API dan fungsi yang disediakan oleh WordPress secara rasmi, dan elakkan menggunakan fungsi yang tidak disyorkan atau membuat perubahan langsung pada fail-fail asas (core files). Tambahkan awalan yang unik pada fungsi, kelas, dan konstanta anda untuk mengelakkan konflik nama dengan kod lain. Semasa menyimpan tetapan atau membuat jadual pangkalan data, gunakan awalan jadual yang betul. Selain itu, pertimbangkan untuk menyediakan “filter hooks” untuk sebarang operasi yang mungkin mempengaruhi keadaan global (global state), supaya pembangun lain dapat menyesuaikan tingkah laku plugin anda.

Adakah plugin saya perlu menyokong mod pelbagai laman web (multi-site mode) WordPress?

Ia bergantung pada fungsi plugin anda. Jika plugin anda beroperasi pada data yang berkaitan dengan laman web (seperti artikel, tetapan), maka secara lalunya, ia akan berjalan secara berasingan pada setiap laman web dalam rangkaian pelbagai laman web, dan ini biasanya tidak menjadi masalah. Namun, jika plugin anda memerlukan ciri-ciri pengurusan atau tetapan pada peringkat rangkaian, anda perlu memeriksa dengan teliti sama ada ia sesuai untuk digunakan dalam persekitaran pelbagai laman web, dan menggunakan kaedah yang sesuai. is_multisite()get_current_blog_id() Fungsi yang berkaitan dengan rangkaian (seperti…) add_network_option()Untuk memastikan sistem berfungsi dengan baik, adalah penting untuk mempertimbangkan keserasian dengan pelbagai laman web (multi-site compatibility) pada peringkat pembangunan. Ini merupakan amalan yang baik.