Panduan Permulaan Pembangunan Plugin WordPress: Membina Ekspansi Fungsi Pertama Anda Dari Kosong

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

Preparasi dan pembinaan persekitaran.

Sebelum anda mula menulis kod, anda memerlukan persekitaran pembangunan yang sesuai. Ini termasuk pemasangan WordPress secara lokal dan sebuah editor kod. Alat seperti XAMPP, MAMP, Local by Flywheel, atau Laragon disyorkan untuk membina persekitaran pelayan lokal dengan cepat. Pastikan bahawa persekitaran anda menggunakan versi PHP yang terkini (disyorkan 7.4 dan ke atas) serta MySQL/MariaDB.

Seterusnya, anda perlu memahami struktur asas sebuah plugin WordPress. Fail yang paling penting dalam sebuah plugin adalah fail PHP utama, di mana nama fail dan nama direktori boleh disesuaikan. Namun, fail tersebut mesti mengandungi sebuah notis khusus (plugin header) untuk memberitahu WordPress tentang keberadaan plugin tersebut. Anda boleh mencari maklumat lanjut dalam direktori pemasangan WordPress. wp-content/plugins Cipta sebuah folder baru di dalam folder tersebut, sebagai contoh… my-first-plugin

Dalam folder ini, buat fail plugin utama anda, contohnya dengan nama “main_plugin.py”. my-first-plugin.phpPengenalan plugin standard mesti dimasukkan pada awal fail ini.

Diperoleh daripada WEB\nDisyorkan untuk membaca. Panduan Permulaan Pembangunan Plugin WordPress: Bina Extension Fungsi Khusus Pertama Anda Dari Kosong

Cipta fail plugin pertama anda.

Sekarang, mari kita mulakan dengan membuat kerangka asas untuk plugin tersebut. Dalam direktori plugin anda, buka fail PHP utama dan tulis maklumat kepala 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:       这是一个用于学习的 WordPress 插件示例。
 * 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 adalah kunci untuk WordPress mengenal pasti plugin. Di dalamnya,Plugin Name Ini adalah item wajib (required); yang lain adalah optional (sukarela). Selepas menyimpan fail tersebut, anda boleh melihat plugin baru ini di halaman “Plugins” di panel pentadbiran WordPress dan mengaktifkannya. Buat masa ini, plugin ini tidak mempunyai sebarang fungsi.

Menambahkan satu fungsi yang mudah untuk plugin

Satu fungsi yang paling asas adalah menambahkan menu pengurusan yang boleh disesuaikan ke latar belakang pengurusan laman web. Kita akan menggunakan… add_action Function mounted admin_menu Ini tergantung pada tindakan yang dilakukan pada “hook” tersebut.

Dalam fail plugin utama, tambahkan kod berikut selepas blok ulasan:

// 在管理菜单中添加一个顶级菜单
function mfp_add_admin_menu() {
    add_menu_page(
        '我的第一个插件设置', // 页面标题
        '我的插件',           // 菜单标题
        'manage_options',     // 权限要求
        'my-first-plugin',    // 菜单 slug
        'mfp_settings_page',  // 回调函数,用于输出页面内容
        'dashicons-admin-generic', // 图标(可选)
        6                     // 菜单位置(可选)
    );
}
add_action('admin_menu', 'mfp_add_admin_menu');

// 定义设置页面的回调函数
function mfp_settings_page() {
    ?&gt;
    <div class="wrap">
        <h1><?php echo esc_html(get_admin_page_title()); ?></h1>
        <p>Selamat datang ke halaman tetapan untuk plugin pertama saya!</p>
        <form method="post" action="/ms/options.php/" data-trp-original-action="options.php">
            <?php
            // 后续可以在这里添加设置字段
            ?>
            <p class="submit">
                <input type="submit" name="submit" id="submit" class="button button-primary" value="Simpan perubahan.">
            </p>
        <input type="hidden" name="trp-form-language" value="ms"/></form>
    </div>
    &lt;?php
}

Kod ini membuat menu utama baru yang bernama “My Plugins”, dan apabila diklik, ia akan membawa pengguna ke halaman tetapan yang ringkas. add_menu_page Fungsi tersebut digunakan untuk mendaftar menu, dan juga telah mendefinisikan sebuah fungsi panggilan balik (callback function). mfp_settings_page Untuk merender kandungan halaman.

Diperoleh daripada WEB\nDisyorkan untuk membaca. Panduan Permulaan Pembangunan Plugin WordPress: Bina Plugin Fungsi Pertama Anda Dari Kosong

Menggunakan hook dan filter untuk memperluas fungsi

Kelebihan utama WordPress terletak pada arkitektur plugin-nya, yang terutamanya dilaksanakan melalui Action Hooks dan Filter Hooks. Action Hooks membenarkan anda untuk menjalankan kod khusus pada masa-masa tertentu, manakala Filter Hooks membenarkan anda untuk mengubah data.

Gunakan “action hook” untuk menambahkan kaki halaman (page footnote).

Bayangkan kita ingin menambahkan segmen teks khusus secara automatik di akhir setiap artikel di laman web. Ini boleh dilakukan dengan memasang (menggantungkan) kod yang sesuai pada sistem pengurusan kandungan laman web tersebut. the_content Fungsi ini dilaksanakan melalui penggunaan “filter hook”. Perlu diingat bahawa walaupun namanya adalah “filter”, namun… the_content Biasanya digunakan untuk mengubah kandungan yang dipaparkan dalam artikel.

// 在文章内容末尾添加自定义文本
function mfp_append_text_to_content($content) {
    // 确保只在主循环的单篇文章页面添加
    if (is_single() &amp;&amp; in_the_loop() &amp;&amp; is_main_query()) {
        $custom_text = '<p><em>Artikel ini disajikan untuk anda oleh “My First Plugin”.</em></p>';
        $content .= $custom_text;
    }
    return $content;
}
add_filter('the_content', 'mfp_append_text_to_content');

Fungsi ini mfp_append_text_to_content Menerima kandungan artikel asal. $contentSetelah memeriksa syarat-syarat konteks (memastikan bahawa ia adalah halaman artikel yang berasingan), tambahkan segmen teks khusus ke hujung kandungan, dan kemudian kembalikan kandungan yang telah diubah suai. add_filter Daftarkan ia. the_content Kuku.

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

Mencipta pilihan tambahan (plugin options) yang boleh disesuaikan

Sebuah plugin yang praktikal biasanya memerlukan beberapa pilihan yang boleh disesuaikan oleh pengguna. WordPress menyediakan API tetapan untuk mengurus dan mengendalikan pilihan-pilihan tersebut dengan selamat. Kita akan menambahkan satu bidang teks yang ringkas pada halaman tetapan yang telah ada sebelum ini.

Pertama sekali, kita perlu mendaftar satu tetapan (setting) dan menambahkannya ke halaman menu yang sedia ada.

// 初始化插件设置
function mfp_settings_init() {
    // 注册一个新的设置到 “reading” 组(或自定义组)
    register_setting('mfp_plugin_settings', 'mfp_custom_message');

// 在现有页面内添加一个设置区域
    add_settings_section(
        'mfp_section_id',
        '自定义消息设置',
        'mfp_section_callback',
        'my-first-plugin'
    );

// 向该区域添加一个字段
    add_settings_field(
        'mfp_field_id',
        '页脚消息',
        'mfp_field_callback',
        'my-first-plugin',
        'mfp_section_id'
    );
}
add_action('admin_init', 'mfp_settings_init');

// 区域描述回调函数
function mfp_section_callback() {
    echo '<p>Di sini, anda boleh mengkonfigurasi mesej yang akan dipaparkan oleh plugin di akhir artikel.</p>';
}

// 字段输出回调函数
function mfp_field_callback() {
    // 从数据库中获取已保存的选项值
    $message = get_option('mfp_custom_message', '本文由“我的第一个插件”为您呈现。');
    echo '<input type="text" name="mfp_custom_message" value="' . esc_attr($message) . '" class="regular-text">';
    echo '<p class="description">Masukkan mesej yang anda ingin paparkan di akhir setiap artikel.</p>';
}

Kemudian, perlu membuat pengubahsuaian pada definisi yang telah ditetapkan sebelum ini. mfp_settings_page Fungsi tersebut digunakan untuk memaparkan nilai bidang yang telah diset dalam borang.

Diperoleh daripada WEB\nDisyorkan untuk membaca. Dari Pemula Hingga Pakar: Panduan Lengkap dan Latihan Praktikal Pembangunan Plugin WordPress

/\nFungsi panggilan semula untuk halaman tetapan yang dikemaskini
function mfp_settings_page() {
    ?&gt;
    <div class="wrap">
        <h1><?php echo esc_html(get_admin_page_title()); ?></h1>
        <form method="post" action="/ms/options.php/" data-trp-original-action="options.php">
            <p>
        <input type="hidden" name="trp-form-language" value="ms"/></form>
    </div>
    &lt;?php
}

Akhir sekali, kemas kini fungsi yang digunakan untuk menambahkan teks sebelum ini, supaya ia boleh menggunakan pilihan yang boleh disesuaikan.

function mfp_append_text_to_content($content) {
    if (is_single() &amp;&amp; in_the_loop() &amp;&amp; is_main_query()) {
        // 从选项中获取自定义消息,如果不存在则使用默认值
        $custom_text = get_option('mfp_custom_message', '本文由“我的第一个插件”为您呈现。');
        if (!empty($custom_text)) {
            $content .= '<p><em>'. wp_kses_post($custom_text)'.'</em></p>';
        }
    }
    return $content;
}

Pengantarabangsaan plugin dan persiapan untuk penerbitan

Untuk membolehkan plugin digunakan oleh pengguna di seluruh dunia, internationalisasi merupakan langkah yang penting. Ini melibatkan penggunaan bidang teks (text fields) dan fungsi terjemahan untuk mengemas semua rentetan teks yang kelihatan kepada pengguna.

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.

Gunakan fungsi terjemahan untuk membungkus teks tersebut.

Anda perlu mengalih semua rentetan yang dihasilkan dalam plugin ke dalam bahasa yang diinginkan. echo Tekst yang dikembalikan oleh fungsi “atau” (`or`) perlu dibungkus menggunakan fungsi terjemahan yang khusus. Yang paling sering digunakan adalah… () Digunakan untuk menterjemahkan dan mengembalikan rentetan teks, serta… esc_html__() Digunakan untuk menterjemah dan mengekstrip kod HTML.

Modifikasi contoh kod sebelumnya:

// 在管理菜单中添加一个顶级菜单(国际化版本)
function mfp_add_admin_menu() {
    add_menu_page(
        __('我的第一个插件设置', 'my-first-plugin'), // 页面标题
        __('我的插件', 'my-first-plugin'),           // 菜单标题
        'manage_options',
        'my-first-plugin',
        'mfp_settings_page',
        'dashicons-admin-generic',
        6
    );
}
add_action('admin_menu', 'mfp_add_admin_menu');

// 区域描述回调函数(国际化版本)
function mfp_section_callback() {
    echo '<p>'\n' . esc_html__('Di sini anda boleh mengkonfigurasi mesej yang akan dipaparkan oleh plugin ini di penghujung artikel.', 'my-first-plugin') . '</p>';
}

Pada masa yang sama, bidang teks perlu dimuat. Selepas blok ulasan dalam fail utama plugin, tambahkan kod untuk memuat fail terjemahan:

// 加载插件文本域
function mfp_load_textdomain() {
    load_plugin_textdomain('my-first-plugin', false, dirname(plugin_basename(__FILE__)) . '/languages/');
}
add_action('plugins_loaded', 'mfp_load_textdomain');

Menyiapkan paket pengekstrakan plugin

Sebelum mengeluarkan atau berkongsi plugin, anda perlu membuat sebuah pakej pengedaran yang bersih. Pastikan direktori plugin anda mengandungi semua fail yang diperlukan, dan elakkan fail-fail yang tidak perlu. .git Fail folder, fail log, atau fail konfigurasi IDE, dan kandungan yang tidak berkaitan lain. Biasanya, pakej pelancaran plugin yang paling minimum sepatutnya mengandungi:
1. 主插件 PHP 文件。
2. 一个可选的 readme.txt Fail tersebut mematuhi standard format WordPress.org dan digunakan untuk dipaparkan dalam direktori plugin.
3. 一个包含翻译文件的 /languages Folder (jika ada).
4. 其他必需的 JavaScript、CSS 或图片资源文件夹。

Kompres seluruh folder plugin tersebut menjadi fail ZIP. Fail ZIP ini kemudiannya boleh dipasang melalui fungsi “Upload Plugin” di panel pentadbiran WordPress, atau dihantar ke direktori plugin rasmi WordPress.

RINGKASAN

Melalui panduan ini, kita telah melalui proses pembangunan plugin WordPress yang asas: daripada persiapan persekitaran, membuat fail utama yang mengandungi header plugin standard, hingga menambahkan fungsi menggunakan action dan filter hook, seterusnya menggunakan API pengaturan untuk membuat halaman pilihan yang boleh disesuaikan, dan akhirnya mempelajari asas-asas pengantarabangsaan (internationalization). Ini telah meletakkan asas yang kukuh untuk anda membina plugin yang lebih kompleks dan berguna. Ingatlah bahawa struktur kod yang baik, pematuhan kepada standard pengaturcaraan WordPress, serta pemahaman yang mendalam tentang sistem hook-nya, adalah kunci untuk menjadi seorang pengembang plugin yang cemerlang.

FAQ - Soalan Lazim

Apa asas pengaturcaraan yang diperlukan untuk membangunkan plugin WordPress?

Anda perlu mempunyai pengetahuan asas dalam pengaturcaraan PHP, kerana kod asas WordPress dan pluginnya ditulis dalam PHP. Pemahaman yang asas tentang HTML, CSS, dan JavaScript juga sangat membantu, terutama apabila anda perlu menyesuaikan antara muka pengurusan atau interaksi pengguna pada bahagian hadapan (front end). Memahami konsep asas WordPress, seperti artikel, halaman, kategori, dan “hooks” (mekanisme pengaitan fungsi), juga merupakan keperluan yang penting.

Apakah nama fail utama untuk plugin tersebut?

Tidak ada keperluan wajib. Fail utama boleh mempunyai nama apa sahaja yang sah untuk fail PHP, tetapi biasanya disyorkan untuk menggunakan nama yang sama dengan nama direktori plugin tersebut. Sebagai contoh, jika nama direktori adalah… my-super-pluginMaka, fail utama boleh dinamakan sebagai my-super-plugin.phpKuncinya terletak pada ulasan kepala plugin di bahagian atas fail tersebut; WordPress menggunakan maklumat yang terdapat dalam ulasan tersebut untuk berfungsi dengan betul. Plugin Name: Untuk mengenal pasti plugin tersebut.

Bagaimana untuk membaiki (debug) kod plugin saya?

Terdapat pelbagai cara untuk membaiki masalah (debug) pada plugin. Pertama sekali, pastikan bahawa anda telah mengikuti langkah-langkah yang betul semasa mengatur (configure) plugin tersebut. wp-config.php Aktifkan mod pembangunan (debug mode) untuk WordPress dalam fail tersebut. WP_DEBUG Konstanta ditetapkan kepada trueIni akan memaparkan ralat PHP, amaran, dan notis pada halaman web. Selain itu, ia juga boleh digunakan untuk… error_log() Fungsi tersebut akan menulis maklumat pembaikan ke log ralat pada pelayan, atau menggunakan alat pembaikan yang lebih canggih seperti plugin Query Monitor, yang boleh menyediakan maklumat terperinci mengenai pertanyaan pangkalan data, pengaitan (hooks), ralat PHP, dan lain-lain.

Bagaimanakah saya boleh mengeluarkan plugin yang saya bangunkan ke direktori rasmi WordPress?

Untuk menerbitkan plugin ke dalam direktori plugin rasmi WordPress.org, anda perlu mendaftar akaun terlebih dahulu di WordPress.org, kemudian menghantar plugin anda untuk semakan. Kod plugin anda mesti mematuhi lesen GNU GPL, dan perlu mengandungi fail lesen yang disusun dengan betul. readme.txt Fail tersebut akan ditinjau oleh pasukan semakan yang akan memeriksa kualiti kod, keselamatan, dan sama ada ia mematuhi garis panduan direktori. Setelah proses semakan selesai, anda akan mendapat sebuah repositori SVN yang boleh digunakan untuk mengurus dan mengemaskini versi plugin anda.