Dari awal: Panduan lengkap untuk memulakan pembangunan plugin WordPress dan tutorial praktikal.

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

Preparasi dan pembinaan persekitaran.

Sebelum membangunkan plugin untuk WordPress, adalah sangat penting untuk mewujudkan persekitaran pembangunan tempatan yang stabil. Ini akan membolehkan anda melakukan ujian dan penyelarasan tanpa mempengaruhi laman web yang berada dalam talian.

Pemilihan dan Konfigurasi Persekitaran Pembangunan Tempatan

Langkah yang paling penting adalah untuk membina sebuah pelayan setempat yang mengintegrasikan PHP, MySQL, dan Apache/Nginx. Anda boleh memilih…MAMPXAMPPPaket perisian integrasi seperti ini menyediakan kaedah pemasangan yang mudah untuk Windows dan macOS. Bagi pengguna yang lebih berpengalaman, mereka boleh menggunakan...DockerMenggunakan pendekatan kontena untuk mengatur persekitaran pembangunan anda merupakan amalan terbaik pada masa kini, kerana ia memastikan konsistensi persekitaran dan memudahkan proses pemindahan (replication). Tidak kira kaedah yang anda pilih, pastikan bahawa versi PHP yang anda gunakan adalah selaras dengan versi utama yang disyorkan oleh plugin tersebut (contohnya, PHP 7.4 dan ke atas), dan aktifkan ekstensi PHP yang diperlukan, seperti MySQLi atau PDO.

Pasang dan konfigurasi WordPress.

Setelah persekitaran pelayan tempatan bersedia, anda perlu memasang inti WordPress. Muat turun versi stabil terkini dari laman web rasmi WordPress.org, kemudian extract (pecahkan fail) ke direktori akar web pelayan anda (contohnya, /www/).htdocswwwFail tersebut terdapat dalam sebuah folder di bawah direktori yang ditentukan. Kemudian, akses folder tersebut melalui pelayar web dan lengkapi proses pengaturan mengikut langkah-langkah “Pemasangan Lima Minit” yang terkenal. Disarankan untuk membuat sebuah pangkalan data khusus untuk pembangunan plugin, dan catat nama pangkalan data, nama pengguna serta kata laluan tersebut. Selepas pemasangan selesai, masuk ke panel pentadbiran WordPress dan tetapkan struktur pautan tetap (fixed links) kepada format yang bukan laluan default (seperti “Nama Artikel”), ini akan membantu menguji keserasian plugin dengan pautan tetap (permanent links).

Diperoleh daripada WEB\nDisyorkan untuk membaca. Pengenalan kepada pembangunan tema WordPress: Membina tema kustom pertama anda dari awal.

Rekomendasi alat pembangunan yang penting:

Pembangunan yang cekap tidak dapat dilakukan tanpa alat yang sesuai. Pertama sekali, anda memerlukan sebuah editor kod, seperti yang percuma dan mempunyai ciri-ciri yang kuat.Visual Studio CodePasang plugin yang sesuai untuk PHP, WordPress, dan kefahaman kod yang lebih baik. Alat kawalan versi juga diperlukan.GitIa merupakan alat yang penting untuk mengurus perubahan pada kod dan melihat sejarah perubahan tersebut. Alat pembangun pelayar (Chrome DevTools atau Firefox Developer Edition) sangat penting untuk penyelidikan dan pembetulan masalah pada bahagian frontend (skrip dan reka bentuk halaman web). Akhir sekali, pertimbangkan untuk memasang alat pemeriksa kualiti kod, seperti…PHP_CodeSnifferPakaian yang serasiWordPress-Coding-StandardsSet peraturan ini dapat membantu anda mengikuti standard pengkodan rasmi WordPress.

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.

Struktur asas plugin dan fail-fail utama

Sebuah plugin WordPress standard mempunyai struktur direktori dan fail yang tertentu. Mengikuti spesifikasi ini adalah asas bagi plugin tersebut untuk dikenali oleh sistem dan diurus dengan berkesan.

Komposisi asas fail utama dan fungsinya

Setiap plugin mesti mempunyai satu fail PHP utama yang berfungsi sebagai titik masuk untuk plugin tersebut. Komen header dalam fail ini mengandungi metadata plugin, yang merupakan kunci untuk WordPress mengenali plugin tersebut. Berikut adalah contoh fail utama plugin yang paling asas:my-first-plugin.phpContoh:

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

// 防止直接文件访问
if ( ! defined( 'ABSPATH' ) ) {
    exit;
}

Plugin NameIni adalah satu-satunya bidang yang wajib diisi, dan ia digunakan untuk menampilkan senarai plugin di latar belakang. Disyorkan untuk mendefinisikannya dengan jelas.ABSPATHPeriksa untuk mencegah pengguna jahat daripada mengakses fail inti plugin secara langsung.

Menambahkan kod teras yang berfungsi untuk plugin

Selepas mengisi ulasan di bahagian kepala (header comments), anda boleh mula menulis kod fungsi untuk plugin tersebut. Contoh yang paling mudah adalah menambahkan mesej “Hello World” ke dalam laman pentadbiran (management backend). Anda boleh menggunakan…add_actionHook akan memuatkan fungsi khusus (custom function) ke titik pelaksanaan tertentu dalam WordPress.

Diperoleh daripada WEB\nDisyorkan untuk membaca. Dari awal: Panduan lengkap dan tutorial amali untuk pembangunan plugin WordPress.

/**
 * 在管理后台顶部显示欢迎信息
 */
function myfp_display_admin_notice() {
    echo '<div class="notice notice-success is-dismissible"><p>Selamat menggunakan “My First Plugin”!</p></div>';
}
add_action( 'admin_notices', 'myfp_display_admin_notice' );

Untuk mengekalkan organisasi kod dan mengelakkan konflik penamaan, semua nama fungsi dan kelas harus menggunakan prefiks yang unik, seperti yang ditunjukkan di sini.myfp_(My First Plugin).

Piawaian Pengaturan Direktori Plugin dan Fail Sumber

Sebuah plugin yang mempunyai fungsi yang lebih kompleks biasanya terdiri daripada beberapa fail. Struktur direktori yang teratur dapat meningkatkan kualiti penyelenggaraan (maintainability) dengan ketara. Cara pengaturan yang biasa digunakan adalah seperti berikut:
- /assets/Menyimpan sumber statik seperti CSS, JavaScript, gambar, dan fon.
- /includes/Menyimpan fail kelas PHP yang teras dan fail fungsi-fungsi yang berkaitan dengan ciri-ciri tertentu aplikasi.
- /admin/Menyimpan fail-fail PHP, CSS, dan JS yang hanya berkaitan dengan bahagian pentadbiran (admin backend).
- /public/Menyimpan fail-fail yang berkaitan dengan bahagian hadapan (frontend) laman web.
- /languages/Untuk menyimpan fail terjemahan antarabangsa (.po, .mo).

Ingatlah sentiasa bahawa fail plugin utama terletak dalam direktori akar (root directory) plugin tersebut. Semasa merujuk kepada fail sumber dalam kod, anda harus menggunakan laluan yang betul.plugin_dir_url( FILE )plugin_dir_path( FILE )Untuk mendapatkan URL atau laluan server yang betul secara dinamik.

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%.

Mekanisme Hook dan Interaksi dengan API Utama

Jiwa pembangunan plugin WordPress terletak pada mekanisme “Hook” (Pegangan), yang membenarkan kod anda untuk dimasukkan dan dijalankan pada masa-masa tertentu dalam kod asas WordPress, tema, atau plugin lain.

Memahami Hook Aksi (Action Hook) dan Hook Penapis (Filter Hook)

Hook terbahagi kepada dua kategori utama: Action dan Filter. Hook Action digunakan untuk menjalankan kod anda apabila sesuatu peristiwa tertentu berlaku, seperti selepas sebuah artikel diterbitkan atau sebelum sesuatu halaman dimuat. Ia tidak mengembalikan sebarang nilai, tetapi hanya “melakukan” sesuatu tindakan. Fungsi utama yang digunakan adalah…add_action()do_action()Filter hooks digunakan untuk mengubah data. Sebelum data tersebut digunakan, disimpan, atau dipaparkan, anda boleh menghalangnya dan mengubahnya. Filter hook mesti mengembalikan sebuah nilai. Fungsi utama yang digunakan adalah…add_filter()apply_filters()

Menggantungkan fungsi khusus pada pengait standard (standard hooks)

WordPress core menyediakan ratusan hook standard. Sebagai contoh, anda boleh menambahkan kenyataan hak cipta secara automatik di akhir kandungan artikel, dan ini melibatkan penggunaan kedua-dua fungsi “action” dan “filter”.

Diperoleh daripada WEB\nDisyorkan untuk membaca. Pembangunan plugin WordPress dari pemula hingga mahir: Panduan langkah demi langkah untuk membantu anda mencipta fungsi khusus.

// 使用过滤器修改文章内容
function myfp_add_copyright_to_content( $content ) {
    if ( is_single() ) {
        $copyright_text = '<p><em>Sila berikan sumber apabila menyalin atau mengongsi kandungan ini.</em></p>';
        $content .= $copyright_text;
    }
    return $content;
}
add_filter( 'the_content', 'myfp_add_copyright_to_content' );

// 使用动作在文章保存时执行操作
function myfp_log_post_publish( $post_id ) {
    // 记录日志或执行其他后处理
    error_log( "文章 ID {$post_id} 已发布。" );
}
add_action( 'publish_post', 'myfp_log_post_publish' );

Mencipta dan menyediakan hook tersuai untuk pengembangan.

Sebuah plugin yang direka dengan baik juga sepatutnya membenarkan pembangun lain untuk mengembangkannya. Anda boleh mencapai ini dengan membuat hook khusus (custom hooks) sendiri. Ini bukan sahaja mencerminkan kebolehopenaan (openness) arsitektur plugin tersebut, tetapi juga selaras dengan falsafah WordPress itu sendiri.

// 定义一个自定义动作钩子
function myfp_process_data() {
    $data = '一些初始数据';
    // 其他开发者可以通过 ‘myfp_before_action’ 在此处插入代码
    do_action( 'myfp_before_action', $data );

// 插件的主要处理逻辑...

// 其他开发者可以通过 ‘myfp_after_action’ 在此处插入代码
    do_action( 'myfp_after_action', $data );
}

// 定义一个自定义过滤器钩子
function myfp_get_output() {
    $output = '默认输出';
    // 允许其他开发者过滤最终的输出
    return apply_filters( 'myfp_filter_output', $output );
}

Membina antaramuka pengurusan plugin dan pilihan tetapan

Kebanyakan plugin memerlukan antara muka belakang (backend interface) yang membolehkan pengguna untuk membuat konfigurasi. WordPress menyediakan pelbagai API untuk membantu anda membina halaman tetapan (setting pages) dan pilihan (options) yang standard dengan cepat dan selamat.

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.

Menggunakan API Tetapan untuk mengurus pilihan keselamatan

API untuk tetapan WordPress merupakan rangka kerja yang selamat untuk menguruskan borang, pengesahan, penyimpanan, dan pemaparan data pilihan pengguna. Ia menguruskan medan keselamatan “nonce” dan pemeriksaan hak akses secara automatik. Langkah-langkah asas untuk membuat halaman tetapan termasuk: 1) Mendaftar tetapan, 2) Menambahkan blok tetapan, 3) Menambahkan medan. Kod di bawah ini menunjukkan cara untuk mendaftar tetapan yang mudah:

function myfp_register_settings() {
    register_setting(
        'myfp_settings_group', // 选项组名
        'myfp_option_name',    // 选项名(存储在wp_options表中)
        array( 'sanitize_callback' => 'myfp_sanitize_callback' ) // 消毒回调函数
    );

add_settings_section(
        'myfp_settings_section', // 区块ID
        '基本设置',               // 区块标题
        'myfp_section_callback', // 区块回调函数(可输出描述)
        'myfp-settings-page'     // 设置页面Slug
    );

add_settings_field(
        'myfp_text_field',      // 字段ID
        '示例文本输入',         // 字段标签
        'myfp_text_field_callback', // 字段回调函数(输出HTML表单域)
        'myfp-settings-page',   // 页面Slug
        'myfp_settings_section' // 所属区块ID
    );
}
add_action( 'admin_init', 'myfp_register_settings' );

Membina halaman menu dan sub-menu di lokasi yang berbeza

Anda perlu menambahkan pautan ke halaman tetapan ke menu pentadbiran WordPress. Gunakan kaedah berikut:add_menu_page()Ia adalah mungkin untuk membuat menu utama (top-level menu) dan menggunakannya.add_submenu_page()Submenu boleh dibuat.

function myfp_add_admin_menu() {
    // 添加顶级菜单
    add_menu_page(
        '我的插件设置',        // 页面标题
        '我的插件',            // 菜单标题
        'manage_options',     // 权限能力
        'myfp-settings-page', // 菜单Slug
        'myfp_render_settings_page', // 渲染页面的回调函数
        'dashicons-admin-generic', // 图标(可选)
        80                    // 菜单位置
    );

// 添加子菜单(指向同一个页面,但菜单标题不同)
    add_submenu_page(
        'myfp-settings-page', // 父菜单Slug
        '关于此插件',         // 页面标题
        '关于',              // 菜单标题
        'manage_options',    // 权限能力
        'myfp-about-page',   // 菜单Slug
        'myfp_render_about_page' // 渲染回调
    );
}
add_action( 'admin_menu', 'myfp_add_admin_menu' );

Kembali fungsi untuk memaparkan halaman tetapan khusus (custom settings page).

myfp_render_settings_pageFungsi panggil balik (callback function) bertanggungjawab untuk menghasilkan struktur HTML halaman tetapan. Dalam fungsi ini, anda perlu memanggil…settings_fields()do_settings_sections()Output the fields registered by the Settings API.

function myfp_render_settings_page() {
    // 检查用户权限
    if ( ! current_user_can( 'manage_options' ) ) {
        return;
    }
    ?&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( 'myfp_settings_group' );
            do_settings_sections( 'myfp-settings-page' );
            submit_button( '保存设置' );
            ?>
        <input type="hidden" name="trp-form-language" value="ms"/></form>
    </div>
    &lt;?php
}

RINGKASAN

Pembangunan plugin WordPress adalah proses mengubah idea kreatif menjadi ciri-ciri yang berfungsi dengan baik. Kejayaannya bergantung pada pemahaman yang jelas tentang struktur asas, penggunaan mekanisme “hook” yang mahir, serta perhatian berterusan terhadap aspek keselamatan dan pengalaman pengguna. Bermula dari membina persekitaran pembangunan, menulis fail utama, hingga mengintegrasikan fungsi dengan WordPress melalui “actions” dan “filters”, seterusnya membina antara muka pengurusan yang profesional menggunakan API, setiap langkah mengikuti piawaian dan amalan terbaik yang ditetapkan. Kuncinya adalah untuk menjaga kod agar modular, mudah dibaca, dan boleh diperluas; menggunakan prefiks unik untuk mengelakkan konflik, dan sentiasa meletakkan keselamatan sebagai keutamaan. Melalui pembelajaran dan latihan dengan panduan ini, anda kini mempunyai kemampuan untuk membina plugin WordPress yang lengkap dengan ciri-ciri yang memenuhi standard.

FAQ - Soalan Lazim

Apa asas pengaturcaraan yang diperlukan untuk membangunkan plugin WordPress ###?
Untuk mengembangkan plugin WordPress, pengetahuan asas dalam bahasa pemrograman PHP adalah diperlukan, termasuk sintaks, fungsi, array, dan konsep pengaturcaraan berorientasikan objek. Pemahaman asas tentang teknologi front-end seperti HTML, CSS, dan JavaScript juga sangat membantu dalam pembangunan plugin yang mempunyai antara muka pengguna. Kemahiran dalam operasi asas pangkalan data MySQL juga berguna, kerana WordPress sangat bergantung pada pangkalan data.

Bagaimana untuk membaiki (debug) plugin WordPress yang sedang dibangunkan?

Terdapat pelbagai cara untuk membaiki (debug) plugin. Pertama sekali,wp-config.phpBuka fail tersebut.WP_DEBUGWP_DEBUG_LOGIni akan merekod ralat dan amaran PHP ke dalam…/wp-content/debug.logFail tersebut tidak akan dipaparkan kepada pengguna di bahagian hadapan (front-end). Kedua, gunakan alat pembangun pelayar (seperti Chrome DevTools) untuk memeriksa dan membetulkan masalah berkaitan JavaScript serta permintaan rangkaian (network requests). Bagi logik yang kompleks, anda boleh menggunakan…var_dump()error_log()Fungsi tersebut mengeluarkan nilai variabel ke dalam log atau halaman web. Selain itu, dengan memasang alat pembangunan PHP yang profesional seperti Xdebug dan mengintegrasikannya dengan editor kod anda, anda boleh melakukan pembangunan dengan menggunakan “breakpoint” (titik henti), yang merupakan cara pembangunan yang paling efisien.

Bagaimanakah saya boleh melaksanakan pengaturcaraan antarabangsa (internationalization) untuk plugin saya yang menyokong berbilang bahasa?

实现国际化(i18n)主要使用WordPress提供的__()_e()_x()Gunakan fungsi terjemahan yang sesuai. Dalam kod plugin, balut semua teks yang perlu diterjemahkan dengan fungsi-fungsi tersebut, dan tentukan domain teks (Text Domain) yang telah ditetapkan dalam komen pada bahagian atas kod plugin.Text DomainNilai tersebut kemudian digunakan, dan alat seperti Poedit digunakan untuk memindai kod sumber plugin tersebut untuk menghasilkan….potFail templat, di mana penterjemah menggunakan ia untuk membuat terjemahan dalam bahasa yang berbeza..poDan selepas dikompilasi..moFail-fail tersebut. Akhirnya, letakkan fail-fail terjemahan ini di dalam plugin./languages/Berada dalam direktori tersebut, dan digunakan semasa pemulaan plugin.load_plugin_textdomain()Fungsi tersebut memuatkan kandungan tersebut.

Bagaimana untuk mengeluarkan plugin saya secara percuma ke dalam direktori plugin rasmi WordPress?

Untuk mengeluarkan plugin ke direktori rasmi, terdapat beberapa syarat yang perlu dipenuhi. Pertama sekali, pastikan plugin anda mematuhi sepenuhnya lesen GPL v2 atau versi yang lebih baru. Kedua, pastikan kualiti dan keselamatan kod, serta ikuti standard pengaturcaraan WordPress. Selepas itu, anda perlu membuat akaun di WordPress.org dan menghantar plugin tersebut ke bahagian “Pembangun” (Developers). Sebelum menghantar, pastikan plugin anda mempunyai dokumentasi yang lengkap dan disusun dengan baik.readme.txtFail tersebut telah disediakan dalam format Markdown yang khusus, dan pengaturan internasionalisasi (internationalization) telah dilakukan dengan betul. Setelah dihantar, pasukan pemeriksaan plugin akan melakukan semakan, dan proses ini mungkin mengambil masa beberapa hari hingga beberapa minggu. Setelah lulus semakan, plugin anda akan dapat ditemui dan dipasang dalam direktori rasmi.