Bagaimana untuk belajar membangunkan plugin WordPress daripada awal: panduan lengkap dan tutorial amali.

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

Memahami struktur asas plugin WordPress

Sebelum memulakan pembangunan, anda mesti memahami konsep asas dan cara kerja plugin WordPress. Sebuah plugin pada dasarnya merupakan sekumpulan fail PHP yang boleh memperluas fungsi asas WordPress, dan biasanya termasuk dokumentasi, kod yang dilaksanakan, fail sumber, dan lain-lain. Pengoperasian plugin tersebut sepenuhnya bergantung pada sistem Hook yang disediakan oleh WordPress.

Meneroka struktur fail standard untuk plugin

Sebuah plugin WordPress yang standard biasanya mengikuti struktur direktori yang tertentu. Fail plugin utama, sebagai contoh… my-first-plugin.phpMesti diletakkan di… /wp-content/plugins/ Dalam direktori tersebut atau sub-direktorinya. Fail ini sangat penting kerana ia mengandungi maklumat header plugin, yang digunakan untuk mengenal pastikan plugin anda kepada sistem WordPress.

Sebuah direktori plugin yang tipikal mungkin mengandungi bahagian-bahagian berikut: fail plugin utama, serta direktori untuk menyimpan sumber statik seperti JavaScript dan CSS. assets/ Folder untuk fail kelas PHP includes/ Senarai, untuk antaramuka pengguna admin/public/ Folder, serta alat yang digunakan untuk menterjemahkan fail-fail tersebut. languages/ Senarai. Struktur yang baik membantu dalam pengurusan dan penyelenggaraan kod, terutama apabila fungsi plugin menjadi semakin kompleks.

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

Mengenali maklumat header fail plugin yang penting

Setiap plugin mesti bermula dengan maklumat meta tertentu (Header), yang terkandung dalam blok ulasan PHP. Ini adalah kunci untuk WordPress mengenal pasti plugin tersebut. Format asasnya adalah seperti 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://www.example.com/my-first-plugin
 * Description: 这是一个简短描述,介绍插件功能的句子。
 * Version:     1.0.0
 * Author:      你的名字
 * Author URI:  https://www.example.com
 * License:     GPL v2 or later
 * Text Domain: my-first-plugin
 * Domain Path: /languages
 */

Di antaranya,Plugin Name Ia adalah wajib, manakala maklumat lain adalah pilihan tetapi disyorkan untuk diisi. Terutamanya… Text DomainDomain PathMereka adalah persediaan untuk pengekstrakan aplikasi tambahan (plugin) ke dalam bahasa antarabangsa (sokongan pelbagai bahasa). WordPress akan membaca maklumat ini dan memaparkannya pada halaman pengurusan “aplikasi tambahan” di bahagian belakang.

Membina persekitaran pembangunan tempatan dan mencipta plugin pertama

Sebelum memulakan proses pengkodan, sebuah persekitaran pembangunan tempatan yang terpisah dan boleh diulang-ulang penggunaannya dengan cepat adalah sangat penting. Ini dapat mengelakkan risiko yang mungkin timbul daripada ujian terus-menerus pada laman web yang berada dalam talian.

Mengkonfigurasi rangkaian alat pembangunan tempatan

Disyorkan untuk menggunakan persekitaran integrasi pelayan tempatan, seperti Local by Flywheel, XAMPP, atau Laragon. Alat-alat ini membenarkan pemasangan PHP, MySQL, dan pelayan web yang diperlukan untuk WordPress dengan satu klik sahaja. Selain itu, anda juga memerlukan editor kod, seperti Visual Studio Code atau PHPStorm, yang menyediakan fungsi penyorotan sintaks, cadangan kod, dan pembetulan ralat. Pastikan bahawa versi PHP yang anda gunakan adalah serasi dengan pelayan sasaran; versi PHP 7.4 atau lebih baru disyorkan.

Menulis dan mengaktifkan sebuah plugin yang mudah

Sekarang, mari kita buat plugin pertama yang berfungsi dengan baik. /wp-content/plugins/ Dalam direktori tersebut, buatlah sebuah folder baru dan berikan nama ia sebagai… my-first-pluginDi dalam folder tersebut, cipta satu folder bernama my-first-plugin.php Fail tersebut.

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

Salin maklumat header plugin yang disebutkan dalam bahagian sebelumnya ke permulaan fail ini. Kemudian, mari kita tambah satu fungsi yang mudah: menambahkan teks khusus secara automatik di akhir kandungan artikel. Ini memerlukan penggunaan “filter” hook dalam WordPress. Tambahkan kod berikut di bawah maklumat header:

// 在文章内容后添加自定义文本
function myfp_add_footer_text( $content ) {
    // 仅对主循环中的单篇文章生效
    if ( is_single() &amp;&amp; in_the_loop() &amp;&amp; is_main_query() ) {
        $custom_text = '<p><em>Terima kasih atas pembacaan! Artikel ini disokong oleh “My First Plugin”.</em></p>';
        $content .= $custom_text;
    }
    return $content;
}
// 将函数挂载到 ‘the_content’ 过滤器上
add_filter( 'the_content', 'myfp_add_footer_text' );

Setelah menyimpan fail tersebut, log masuk ke panel pentadbiran WordPress anda dan ke halaman “Pembantu” (Plugins). Anda sepatutnya dapat melihat sebuah pembantu baru dengan nama “My First Plugin”. Klik butang “Aktifkan” (Activate). Seterusnya, periksa sebuah artikel di laman web anda, dan anda akan mendapati bahawa teks yang kami tambahkan telah muncul di penghujung kandungan artikel tersebut. Dengan ini, pembantu WordPress pertama anda telah berjaya diaktifkan dan berfungsi dengan baik.

Menguasai teknologi teras dalam pembangunan plugin

Kekuatan kebolehluasan WordPress adalah berdasarkan beberapa konsep asas: Hook, API Pilihan (Options API), Jenis Artikel Dikustom (Custom Post Types/CPT), dan operasi pangkalan data. Memahami konsep-konsep ini adalah asas untuk pembangunan yang lebih lanjut.

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

Mengerti dengan mendalam tentang pengaitan tindakan (actions) dan penapis (filters)

Sistem Hook merupakan asas utama dalam pembangunan plugin untuk WordPress, dan ia terbahagi kepada dua jenis: Action dan Filter. Hook Action akan diaktifkan pada titik-titik tertentu semasa proses pelaksanaan (seperti semasa halaman dimuat, atau semasa artikel disimpan), membenarkan anda melakukan tindakan tertentu, seperti menambah menu atau menghantar e-mel. add_action() Fungsi untuk memuatkan (mounting).

Sebagai contoh, tambahkan sebuah halaman dalam menu pengurusan latar belakang (backend management menu).

function myfp_add_admin_menu() {
    add_menu_page(
        '我的插件设置', // 页面标题
        '我的插件',     // 菜单标题
        'manage_options', // 权限
        'myfp-settings',  // 菜单slug
        'myfp_settings_page', // 回调函数,用于显示页面内容
        'dashicons-admin-generic', // 图标
        20
    );
}
add_action( 'admin_menu', 'myfp_add_admin_menu' );

Filter hooks membenarkan anda “mengubah” data. Mereka menghalang data sebelum ia digunakan (seperti dipaparkan di browser atau disimpan ke dalam database), dan anda boleh mengubahnya serta mengembalikan nilai yang baru. Ini adalah ciri yang digunakan dalam plugin pertama kami. the_content Ia hanyalah satu pengait (hook) untuk penapis (filter).

Diperoleh daripada WEB\nDisyorkan untuk membaca. Menganalisis WooCommerce secara mendalam: Panduan lengkap untuk membina laman web e-dagang berprestasi tinggi daripada awal.

Gunakan API pilihan untuk menyimpan tetapan plugin.

Pemalam (plugins) biasanya memerlukan penyimpanan beberapa tetapan, seperti kunci API, status suis (on/off), dan sebagainya. WordPress menyediakan… Options API Mari kita uruskan data jenis ini dengan mudah. Fungsi-fungsi utama yang terlibat termasuk… add_option(), get_option(), update_option()delete_option()

Buatlah sebuah halaman tetapan yang ringkas untuk menggunakan fungsi-fungsi tersebut. Pertama sekali, definisikan fungsi callback untuk menu yang telah dinyatakan di atas. myfp_settings_page Untuk menunjukkan sebuah borang:

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 myfp_settings_page() {
    ?&gt;
    <div class="wrap">
        <h1>Tetapan-tetapan plugin saya</h1>
        <form method="post" action="/ms/options.php/" data-trp-original-action="options.php">
            <?php
            settings_fields( 'myfp_settings_group' ); // 输出安全字段
            do_settings_sections( 'myfp-settings' );  // 输出设置部分
            submit_button(); // 输出提交按钮
            ?>
        <input type="hidden" name="trp-form-language" value="ms"/></form>
    </div>
    &lt;?php
}

Kemudian, anda perlu menggunakan register_setting(), add_settings_section()add_settings_field() Gunakan fungsi-fungsi tertentu untuk mendeklarasikan dan menginisialisasikan bidang-bidang pengaturan ini. Proses ini akan memastikan data disimpan dengan selamat. wp_options Dalam jadual.

Membina contoh plugin praktikal yang lengkap

Kita akan mengintegrasikan pengetahuan yang telah kita pelajari sebelum ini untuk membuat sebuah plugin yang agak kompleks tetapi praktikal: sebuah plugin “Anggaran Masa Pembacaan Artikel”. Plugin ini akan menunjukkan anggaran masa pembacaan di bawah tajuk artikel.

Mencipta fail utama plugin dan fungsi-fungsi yang diperlukan

Membuat folder baru untuk plugin post-reading-time Dan fail utama post-reading-time.phpIsi maklumat kepala plugin standard. Kemudian, kita akan membuat fungsi utama untuk mengira masa membaca.

function prt_calculate_reading_time( $post_id ) {
    // 获取文章内容
    $content = get_post_field( 'post_content', $post_id );
    // 清除HTML标签和短代码,只计算文字
    $text = strip_tags( strip_shortcodes( $content ) );
    // 计算字数(中英文混合场景的简单处理)
    $word_count = mb_strlen( $text, 'UTF-8' );
    // 假设平均阅读速度为每分钟300字(可根据需要调整)
    $reading_speed = 300;
    // 计算分钟数,至少1分钟
    $minutes = floor( $word_count / $reading_speed );
    if ( $minutes < 1 ) {
        $minutes = 1;
    }
    // 返回包含时间的字符串
    return sprintf( _n( '约 %d 分钟读完', '约 %d 分钟读完', $minutes, 'post-reading-time' ), $minutes );
}

Menunjukkan kandungan pada bahagian hadapan (front end) yang berintegrasi dengan sistem pengurusan di bahagian belakang (back end).

Seterusnya, kita perlu memutuskan bagaimana untuk menunjukkan masa tersebut. Cara yang biasa dilakukan adalah dengan menambahkannya ke dalam metadata artikel (di bawah tajuk artikel). the_content Penapis atau tema menyediakan hook tertentu. Di sini, kita menggunakan hook tindakan yang lebih sesuai. thesis_hook_before_post(Tergantung pada topik), atau dengan cara yang lebih umum, kandungan artikel boleh disaring terus.

Untuk kebolehan yang lebih fleksibel, kami telah mencipta sebuah kod ringkas (Shortcode) dan sebuah alat kecil (Widget), serta menyediakan pilihan tetapan yang mudah untuk mengawal sama ada ia perlu dipaparkan secara automatik atau tidak.

Pertama sekali, daftar kod ringkasan:

function prt_reading_time_shortcode( $atts ) {
    $atts = shortcode_atts( array(
        'id' =&gt; get_the_ID(),
    ), $atts, 'reading_time' );

$time_text = prt_calculate_reading_time( $atts['id'] );
    return '<span class="reading-time">'.$time_text.'</span>'add_shortcode( 'reading_time', 'prt_reading_time_shortcode' );

Kemudian, kita boleh menambahkan hasil tersebut secara automatik ke permulaan kandungan artikel (melalui penapis):

function prt_prepend_to_content( $content ) {
    if ( is_single() && get_option( 'prt_auto_display', '1' ) == '1' ) {
        $time_html = '<div class="post-reading-time">' . prt_calculate_reading_time( get_the_ID() ) . '</div>';
        $content = $time_html . $content;
    }
    return $content;
}
add_filter( 'the_content', 'prt_prepend_to_content' );

Anda juga perlu membuat satu pilihan tetapan di bahagian belakang (backend). prt_auto_displayMembolehkan pengguna untuk memilih sama ada ingin mengaktifkan fungsi penunjukan automatik atau tidak. Dengan ini, sebuah plugin yang lengkap dengan fungsi dan struktur yang jelas telah dibina.

RINGKASAN

Bermula dengan memahami struktur asas plugin dan maklumat header fail, kami secara beransur-ansur membina persekitaran pembangunan dan mencipta plugin fungsi yang pertama yang mudah. Dengan meneroka secara mendalam sistem hook yang merupakan inti keupayaan pengembangan WordPress, kami belajar bagaimana untuk mengganggu proses pelaksanaan dan mengubah data tanpa perlu memodifikasi kod asal WordPress. Dengan menggunakan API Options, kami dapat membuat tetapan yang boleh disimpan secara kekal untuk plugin. Akhirnya, dengan membina contoh lengkap bagi plugin “anggaran masa pembacaan artikel”, kami menggabungkan pengetahuan teori dengan amalan, meliputi keseluruhan proses pembangunan daripada penulisan logik fungsi, penciptaan kod singkat hingga integrasi dengan bahagian hadapan (frontend) aplikasi. Ingatlah, pembangunan plugin yang cemerlang bermula dengan perancangan yang jelas, pematuhan kepada standard pengkodan WordPress, dan sentiasa meletakkan keselamatan, prestasi, serta pengalaman pengguna sebagai keutamaan.

FAQ - Soalan Lazim

Apa pengetahuan asas yang diperlukan untuk membangunkan plugin WordPress?

Anda perlu memiliki asas pengaturcaraan PHP yang kukuh, kerana kod plugin kebanyakannya ditulis dalam PHP. Selain itu, anda perlu mempunyai pengetahuan asas tentang HTML, CSS, dan JavaScript untuk menguruskan paparan dan interaksi pada bahagian hadapan (front end). Pemahaman konsep asas MySQL akan membantu anda memahami cara WordPress menyimpan dan mencari data. Yang paling penting, anda perlu biasa membaca manual pembangunan rasmi WordPress (Codex) dan rujukan untuk pembangun (Developer Reference).

Bagaimana untuk memastikan bahawa plugin yang saya bangunkan adalah selamat?

Keselamatan adalah sangat penting. Sentiasa lakukan pengesahan (validation) dan pembersihan (sanitization) terhadap input pengguna, serta proses pengelakkan serangan (escaping) terhadap output yang dihasilkan. Gunakan mekanisme nonce yang disediakan oleh WordPress untuk mencegah serangan jenis Cross-Site Request Forgery (CSRF). Semasa membina kueri untuk pangkalan data, pastikan anda mengikuti amalan yang betul. $wpdb Metode yang disediakan oleh kelas (seperti…) prepare()Untuk mencegah serangan SQL injection, elakkan menggunakan fungsi-fungsi yang tidak selamat. eval()Kemaskini plugin anda secara berkala untuk membaiki kelemahan yang diketahui.

Di mana patut letakkan plugin tersebut?

WordPress plugin mesti diletakkan di dalam direktori yang ditentukan oleh WordPress pada laman web tersebut. /wp-content/plugins/ Di dalam direktori tersebut, anda boleh meletakkan fail PHP utama plugin tersebut terus di peringkat akar direktori tersebut. Namun, cara yang lebih teratur adalah dengan membuat folder sub yang berasingan untuk setiap plugin, dan meletakkan semua fail yang berkaitan (PHP, JS, CSS, gambar, dsb.) di dalam folder sub tersebut. Ini akan menjadikan struktur fail lebih jelas dan mengelakkan konflik dengan plugin lain.

Bagaimana untuk menambahkan halaman tetapan untuk plugin saya?

Menambahkan halaman tetapan untuk sambungan (plugin) biasanya melibatkan beberapa langkah: Pertama, gunakan add_action( ‘admin_menu’, ‘your_function’ ) Hook untuk mendaftar item menu pengurusan baru atau sub-menu. Kemudian, dalam fungsi panggil balik (callback function), keluarkan kod HTML untuk borang halaman tersebut. Selepas itu, gunakan… register_setting()add_settings_section()add_settings_field() Gunakan fungsi API Settings untuk mendeklarasikan dan mengaitkan bidang-bidang tetapan anda, ini akan menguruskan pemeriksaan hak akses, pengesahan bukan CE (Common Encryption), serta penyimpanan pilihan secara automatik. Akhir sekali, gunakannya dalam borang tersebut. settings_fields()do_settings_sections() Fungsi ini digunakan untuk mengeluarkan bidang-bidang yang diperlukan.

Apa itu Hook (Gantung), mengapa ia sangat penting?

Hook adalah titik khusus dalam kod asas WordPress yang membenarkan plugin dan tema untuk “berhubung” (hook in) dan menjalankan kod mereka. Terdapat dua jenis hook: Hook Aksi (Actions) dan Hook Penapis (Filters). Hook Aksi akan dijalankan apabila peristiwa tertentu berlaku, dan ia digunakan untuk menambahkan fungsi baru. Hook Penapis pula membenarkan anda memodifikasi data sebelum ia digunakan atau disimpan. Sistem hook merupakan inti kebolehluasan (extensibility) WordPress, yang membolehkan pembangun mengubah atau meningkatkan fungsi WordPress dengan ketara tanpa perlu mengubah fail asasnya, sekali gus memastikan kebersihan dan keupayaan untuk dinaik taraf (upgradability) kod asas WordPress.