Panduan Lengkap untuk Mengembangkan Plugin WordPress: Membuat Plugin Fungsional Pertama Anda dari Nol.

3 menit baca
2026-03-16
2026-06-03
2,238
Saya mendapatkan komisi ketika Anda berbelanja melalui tautan di bawah ini, tanpa biaya tambahan untuk Anda.

Lingkungan Pengembangan Plugin WordPress dan Persiapan Dasar

Sebelum memulai menulis kode, memiliki lingkungan pengembangan yang stabil dan efisien sangat penting. Hal ini tidak hanya dapat meningkatkan efisiensi pengembangan Anda, tetapi juga membantu Anda mengikuti praktik terbaik, serta memastikan kualitas dan kompatibilitas plugin tersebut.

Pertama-tama, Anda memerlukan lingkungan pengembangan WordPress lokal. Anda dapat menggunakan alat seperti XAMPP, MAMP, Local by Flywheel, atau Docker untuk membangunnya dengan cepat. Pastikan bahwa lingkungan Anda menggunakan versi PHP yang lebih baru (rekomendasi: 7.4 atau lebih) serta MySQL/MariaDB. Lingkungan pengembangan lokal memungkinkan Anda melakukan pengujian dan debugging dengan bebas, tanpa mempengaruhi situs web yang berjalan di server online.

Selanjutnya, Anda memerlukan sebuah editor kode atau lingkungan pengembangan terintegrasi (Integrated Development Environment/IDE). Visual Studio Code, PhpStorm, atau Sublime Text merupakan pilihan yang sangat baik, karena mereka menyediakan fitur seperti penyorotan sintaks, saran kode (code hints), dan alat debugging. Disarankan juga untuk menginstal alat pengelola kualitas kode seperti PHP_CodeSniffer, serta mengonfigurasi standar penulisan kode WordPress, agar gaya penulisan kode Anda sesuai dengan standar yang digunakan oleh WordPress inti.

推荐阅读 Panduan Lengkap Pengembangan Plugin WordPress: Dari Pemula hingga Membangun Ekstensi Tingkat Profesional.

Terakhir, memahami struktur dasar plugin WordPress adalah langkah pertama. Plugin yang paling sederhana hanya memerlukan satu file PHP utama, dan di bagian awal file tersebut perlu disertakan komentar-komentar yang berisi informasi spesifik tentang plugin tersebut. File ini merupakan pintu masuk untuk plugin, dan WordPress menggunakan informasi tersebut untuk mengenali serta mengelola plugin Anda.

UltaHost – Hosting untuk WordPress
Jaminan pengembalian uang dalam 30 hari, bandwidth dan basis data yang tidak terbatas, perlindungan DDoS gratis, diskon 50% untuk pembelian selama 3 tahun (dari harga normal: 50%).

Buatlah file plugin pertamamu.

Mari kita mulai dengan membuat plugin “Hello World” yang paling sederhana. Proses ini akan membantu Anda memahami kerangka dasar sebuah plugin serta cara WordPress mengenali adanya sebuah plugin.

Pertama-tama, di dalam direktori instalasi WordPress Anda…wp-content/pluginsDalam folder tersebut, buatlah sebuah folder baru. Nama folder tersebut harus unik, deskriptif, dan terdiri dari huruf kecil serta tanda hubung (-), misalnya:my-first-plugin

Dalam folder tersebut, buatlah sebuah file PHP utama. Nama file tersebut umumnya sama dengan nama foldernya, misalnya:my-first-plugin.phpDi bagian atas file ini, Anda harus menambahkan sebuah komentar header plugin yang sesuai dengan standar WordPress. Komentar ini merupakan “kartu identitas” plugin, yang berisi informasi seperti nama plugin, deskripsi, versi, penulis, dan lainnya. Tanpa komentar ini, WordPress tidak akan dapat menemukan plugin Anda di daftar plugin di backend.

Berikut adalah contoh file plugin yang paling sederhana:

推荐阅读 Mulai dari nol: Mengapa memilih pengembangan plugin WordPress?

<?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; // 如果ABSPATH未定义,则退出
}

Setelah menyimpan file tersebut, masuklah ke panel administrasi WordPress Anda, lalu kunjungi halaman “Plugin”. Anda seharusnya dapat melihat “My First Plugin” muncul dalam daftar plugin. Pada saat itu, Anda dapat mengaktifkannya, tetapi plugin tersebut belum akan melakukan apa-apa.if ( ! defined( ‘ABSPATH’ ) )Pemeriksaan merupakan praktik keamanan yang penting untuk mencegah pengguna mengakses file plugin Anda langsung melalui URL, sehingga kode hanya dieksekusi dalam lingkungan WordPress.

Menambahkan fitur inti ke plugin

Sebuah plugin yang telah diaktifkan perlu melakukan beberapa tindakan tertentu. Dalam WordPress, hal ini umumnya dilakukan melalui “Action Hooks” dan “Filter Hooks”. Kedua mekanisme ini merupakan fondasi utama dari arsitektur plugin WordPress, yang memungkinkan Anda untuk menambahkan kode Anda sendiri atau memodifikasi data pada titik-titik waktu tertentu.

Menggunakan action hook untuk menambahkan notifikasi di backend administrasi

Action hooks memungkinkan Anda menjalankan fungsi Anda sendiri pada saat-saat tertentu saat WordPress dijalankan (misalnya, setelah proses inisialisasi selesai, saat bagian header halaman dimuat, atau saat artikel disimpan). Mari kita tambahkan fitur sederhana: menampilkan pesan selamat datang di bagian atas panel administrasi WordPress.

hosting.com hosting bersama
Kinerja tinggi, dilengkapi dengan CPU AMD EPYC, penyimpanan SSD NVMe, dan LiteSpeed, dukungan internal ahli 24 jam sehari, langkah-langkah keamanan canggih termasuk SSL, brute force, malware, dan perlindungan DDoS, menghemat hingga 731 TB/bulan.

Kami akan menggunakanadmin_noticesAction hook ini: Pertama-tama, Anda perlu membuat sebuah fungsi untuk menghasilkan konten HTML, kemudian gunakan fungsi tersebut.add_action()Fungsi tersebut “menggantungkan” (menghubungkan) fungsi lainnya ke pada titik koneksi (hook) yang telah ditentukan.

Di dalam file plugin utama Anda, tambahkan kode berikut:

/**
 * 在管理后台显示欢迎通知
 */
function myfp_display_admin_notice() {
    ?&gt;
    <div class="notice notice-success is-dismissible">
        <p>Selamat menggunakan “My First Plugin”! Plugin tersebut telah diaktifkan dengan sukses.</p>
    </div>
    &lt;?php
}
// 将函数挂载到 admin_notices 动作钩子
add_action( &#039;admin_notices&#039;, &#039;myfp_display_admin_notice&#039; );

Simpan dan perbarui halaman backend WordPress Anda, lalu Anda seharusnya dapat melihat kotak peringatan sukses berwarna hijau di bagian atas halaman. Perhatikan nama fungsi tersebut.myfp_display_admin_noticeMenggunakan prefiksmyfp_(Dipinjam dari singkatan nama plugin) Hal ini dilakukan untuk menghindari konflik dengan nama fungsi plugin atau tema lainnya, dan merupakan aturan penamaan yang harus dipatuhi.

推荐阅读 Panduan Lengkap untuk Mengembangkan Plugin WordPress: Membangun Fitur Ekstensi WordPress Berkualitas Tinggi dari Nol Hingga Satu.

Menggunakan filter hook untuk mengubah isi artikel

Hook filter memungkinkan Anda memodifikasi data yang dikirimkan dalam WordPress. Misalnya, Anda dapat mengubah isi artikel, judul, atau ringkasan sebelum data tersebut ditampilkan. Mari kita buat sebuah fitur yang secara otomatis menambahkan pernyataan hak cipta di akhir setiap artikel.

Kami akan menggunakanthe_contentFilter hook ini memerlukan pembuatan sebuah fungsi yang menerima konten asli (original content).$contentFungsi tersebut perlu dimodifikasi, lalu hasil modifikasi tersebut harus dikembalikan.

Hosting bersama InterServer.
Hosting bersama seharga $2,50 USD per bulan, diskon $0,1 USD untuk bulan pertama dengan kode promo tryinterserver, serta 461 skrip aplikasi cloud yang dapat diinstal dengan sekali klik.

Tambahkan kode berikut ke dalam file plugin Anda:

/**
 * 在文章内容末尾添加版权声明
 * @param string $content 原始的文章内容
 * @return string 修改后的文章内容
 */
function myfp_add_copyright_to_content( $content ) {
    // 仅对主循环中的单篇文章页面生效
    if ( is_single() &amp;&amp; in_the_loop() &amp;&amp; is_main_query() ) {
        $copyright_text = '<p><em>Hak cipta artikel ini dimiliki oleh situs web ini. Mohon cantumkan sumber saat mengutipnya.</em></p>';
        $content .= $copyright_text;
    }
    return $content;
}
// 将函数挂载到 the_content 过滤器钩子,优先级为10
add_filter( 'the_content', 'myfp_add_copyright_to_content', 10 );

Sekarang, setiap kali Anda membaca artikel di situs web, pernyataan hak cipta yang Anda tambahkan akan muncul di bagian bawah konten tersebut. Hal ini terjadi berkat pengecekan kondisi yang dilakukan dalam fungsi yang terkait.is_single() && in_the_loop() && is_main_query()Sangat penting; hal ini memastikan bahwa teks tersebut hanya akan ditampilkan dalam siklus utama halaman artikel secara terpisah di frontend, dan tidak akan muncul di daftar halaman utama, widget, atau tempat lainnya. Ini merupakan detail penting yang perlu diperhatikan saat membuat plugin berkualitas tinggi.

Internasionalisasi Plugin dan Praktik Terbaik

Agar plugin Anda dapat digunakan oleh pengguna di seluruh dunia, internasionalisasi (i18n) merupakan langkah yang sangat penting. WordPress menyediakan berbagai fungsi yang lengkap untuk mendukung penerjemahan teks dalam plugin ke dalam bahasa lain.

Menyiapkan teks untuk plugin guna mendukung proses penerjemahan.

Anda perlu menggunakan fungsi tertentu untuk membungkus semua string yang ditampilkan kepada pengguna dalam plugin tersebut. Fungsi yang paling umum digunakan adalah…()Digunakan untuk mendapatkan terjemahan._e()Digunakan untuk langsung menampilkan hasil terjemahan, serta…esc_html()Digunakan dalam konteks di mana HTML perlu di-ekspos (diubah menjadi format yang dapat ditampilkan oleh browser).

Pertama-tama, ubah teks dalam fungsi notifikasi dan fungsi hak cipta yang telah kita buat sebelumnya, dengan menggunakan fungsi penerjemahan:

function myfp_display_admin_notice() {
    ?&gt;
    <div class="notice notice-success is-dismissible">
        <p><?php _e( '欢迎使用“我的第一个插件”!插件已成功激活。', 'my-first-plugin' ); ?></p>
    </div>
    &lt;?php
}

function myfp_add_copyright_to_content( $content ) {
    if ( is_single() &amp;&amp; in_the_loop() &amp;&amp; is_main_query() ) {
        $copyright_text = &#039;<p><em>' . esc_html__( '本文版权归本网站所有,转载请注明出处。', 'my-first-plugin' ) . '</em></p>';
        $content .= $copyright_text;
    }
    return $content;
}

Perhatikan, setiap fungsi penerjemahan (translation function) memerlukan parameter kedua.‘my-first-plugin’Ini adalah definisi yang Anda buat di bagian atas plugin.Text DomainIni adalah sebuah identifikasi unik yang digunakan untuk memberitahu WordPress ke mana string-string tersebut termasuk (yakni, ke plugin mana).

Kemudian, Anda perlu menentukan hal tersebut dalam komentar di bagian atas kode plugin (plugin header comments).Domain Path(Yaitu)/languagesLetakkan file-file terjemahan (.po dan .mo) di dalam folder yang telah ditentukan. Anda dapat menggunakan alat seperti Poedit untuk membuat dan mengelola file-file terjemahan tersebut.

Patuhi standar keamanan dan kode yang berlaku.

Keamanan adalah hal yang paling penting dalam pengembangan plugin. Jangan pernah mempercayai data yang dimasukkan oleh pengguna. Saat memproses data dari mana pun, pastikan untuk selalu memverifikasinya dengan seksama.$_GET$_POST$_REQUESTData tersebut harus diverifikasi, dibersihkan, dan di-escape (dilindungi dari interpretasi yang salah) sebelum digunakan.

WordPress menyediakan berbagai fungsi yang dapat membantu Anda:
Validasi: Memeriksa apakah data sesuai dengan format yang diharapkan (sepertiis_email())。
Sanitasi: Menghapus karakter ilegal dalam data (seperti <).sanitize_text_field()sanitize_email())。
Melarikan diri (Escaping): Pastikan data aman sebelum mengekspornya ke HTML, JavaScript, atau URL, misalnya <esc_html()esc_js()esc_url())。

Selain itu, saat langsung mengoperasikan basis data, pastikan untuk menggunakan kelas basis data WordPress.$wpdbMetode yang disediakan, seperti…$wpdb->prepare()Untuk mencegah serangan penyerangan SQL injection.

Menyimpulkan.

Dengan panduan ini, Anda telah menyelesaikan seluruh proses pembuatan sebuah plugin WordPress yang fungsional dari nol. Anda telah mempelajari cara membangun lingkungan pengembangan, membuat file dasar plugin, menggunakan action dan filter hook untuk menambahkan fitur ke dalam WordPress, serta cara meningkatkan kualitas dan kegunaan plugin melalui praktik internasionalisasi dan keamanan. Inti dari pengembangan plugin adalah memahami dan menguasai sistem hook WordPress dengan baik, karena sistem ini memberikan kemampuan ekspansi dan fleksibilitas yang luar biasa. Ingatlah untuk memulai dengan fitur yang sederhana, melakukan iterasi secara bertahap, dan selalu menjadikan keamanan serta kualitas kode sebagai prioritas utama. Dengan demikian, Anda akan dapat membuat plugin WordPress yang kuat dan dapat diandalkan.

FAQ - Pertanyaan yang Sering Diajukan.

Haruskah sebuah plugin diletakkan dalam sebuah folder?

Tidak selalu demikian. Sebuah plugin sederhana yang terdiri dari satu file saja dapat langsung melakukan tugasnya.plugin-name.phpLetakkan di…wp-content/plugins/Berada di dalam direktori tersebut. Namun, untuk setiap plugin yang mengandung beberapa file (seperti CSS, JS, gambar, atau file bahasa), sangat disarankan untuk menggunakan folder terpisah untuk mengorganisir semua file yang terkait. Hal ini akan membuat struktur menjadi lebih jelas dan memudahkan pengelolaan.

Bagaimana cara membuat halaman pengaturan untuk plugin saya?

Anda dapat menggunakan API pengaturan yang disediakan oleh WordPress untuk membuat halaman pengaturan yang profesional dan aman. Langkah-langkah utamanya meliputi:add_menu_page()add_submenu_page()Fungsi tersebut mendaftarkan sebuah halaman menu, lalu menggunakannya.register_setting()add_settings_section()add_settings_field()Gunakan fungsi-fungsi seperti tersebut untuk mendefinisikan bidang pengaturan (setting fields) dan bagian-bagian dalam dokumen (chapters). Akhirnya, tulis sebuah fungsi panggilan balik (callback function) untuk menghasilkan kode HTML dari formulir halaman pengaturan tersebut.

Mengapa prefiks sangat penting dalam pengembangan plugin?

WordPress merupakan sebuah ekosistem yang besar, yang terdiri dari berbagai plugin dan tema. Semua kode dalam WordPress dijalankan dalam satu namespace global yang sama. Jika Anda telah mendefinisikan sebuah variabel dengan nama…get_data()Jika sebuah fungsi biasa dalam kode sumber memiliki nama yang sama dengan fungsi yang didefinisikan oleh plugin lain, hal tersebut dapat menyebabkan kesalahan fatal dan membuat situs web crash. Penggunaan prefiks unik (misalnya, singkatan nama plugin) dapat sangat membantu mencegah konflik tersebut serta memastikan kompatibilitas antar-plugin.

Bagaimana saya sebaiknya mendebug kode plugin saya?

Dalam pengembangan WordPress, alat pilihan untuk melakukan debugging (penyelidikan dan perbaikan kesalahan) adalah dengan mengaktifkan…WP_DEBUGAnda dapat melakukannya di situs web tersebut.wp-config.phpDalam berkas tersebut, hal tersebut dilakukan dengan melakukan pengaturan tertentu.define( ‘WP_DEBUG’, true );Untuk mengaktifkannya, lakukan langkah-langkah yang diperlukan. Dengan mengaktifkannya, semua kesalahan (errors), peringatan (warnings), dan pemberitahuan (notifications) PHP akan ditampilkan di layar. Untuk proses debugging yang lebih kompleks, Anda dapat menggunakan alat atau metode lain yang tersedia.error_log()Fungsi tersebut akan menulis informasi ke log kesalahan server, atau menggunakan alat debugging PHP profesional seperti Xdebug bersama dengan IDE Anda untuk melakukan debugging baris per baris.