Panduan Pengembangan Plugin WordPress: Pelajari Cara Membuat Plugin Sendiri dari Nol Hingga Selesai.

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

Memahami dasar-dasar plugin dan cara membangun lingkungan pengembangan

Sebelum memulai menulis kode, sangat penting untuk memahami konsep dasar dari plugin WordPress dan menyiapkan lingkungan pengembangan lokal yang sesuai. Sebuah plugin pada dasarnya adalah sebuah direktori yang berisi satu atau lebih file PHP, yang berfungsi untuk memperluas atau mengubah fitur inti dari WordPress melalui sistem Hook yang disediakan oleh WordPress. Berbeda dengan tema, plugin berfokus pada penambahan fitur baru, bukan pada perubahan tampilan situs web; bahkan jika Anda mengganti tema, fitur dari plugin tersebut biasanya tetap tidak berubah.

Untuk memulai pengembangan, pertama-tama Anda memerlukan lingkungan WordPress lokal. Ini dapat dengan mudah diatur menggunakan alat-alat seperti Local by Flywheel, MAMP, XAMPP, atau langsung dengan menggunakan kontainer Docker. Setelah WordPress terinstal di lokal, Anda perlu masuk ke…wp-content/pluginsDaftar Isi. Inilah tempat di mana semua plugin disimpan. Buatlah folder baru, misalnya…my-first-pluginDalam folder ini, Anda harus membuat sebuah file PHP utama, yang namanya biasanya sama dengan nama folder tersebut. Contohnya:my-first-plugin.phpFile utama ini merupakan titik masuk (entry point) untuk plugin, dan berisi sekelompok header komentar khusus yang berfungsi untuk memberitahu WordPress nama plugin, deskripsi, versi, penulis, serta informasi lainnya.

Disarankan untuk mengaktifkannya di lingkungan pengembangan.WP_DEBUGMode. Buka direktori akar WordPress.wp-config.phpFile: Temukan atau tambahkan baris berikut:

推荐阅读 Panduan Praktis Pengembangan Plugin WordPress: Membangun Plugin Pertama Anda dari Nol hingga Satu.

define( ‘WP_DEBUG’, true );
define( ‘WP_DEBUG_LOG’, true );
define( ‘WP_DEBUG_DISPLAY’, false );

Ini akan mencatat kesalahan dan peringatan ke dalam…wp-content/debug.logDalam file tersebut, terdapat informasi yang dapat membantu Anda dengan cepat menemukan dan menyelesaikan masalah selama proses pengembangan. Selain itu, menggunakan editor kode atau IDE yang canggih (seperti VS Code, PhpStorm) dapat secara signifikan meningkatkan efisiensi pengembangan. Editor dan IDE tersebut umumnya memiliki dukungan sintaks yang baik serta fitur peringatan (tips) yang sangat berguna untuk penggunaan PHP dan WordPress.

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.

Kita akan melalui seluruh proses dari membuat file hingga mengaktifkan plugin dengan membuat sebuah plugin sederhana bernama “Hello World”. Plugin ini akan menampilkan pesan selamat datang di bagian atas halaman administrasi situs web.

Di dalam direktori plugin Anda…my-first-pluginDalam proses tersebut, langkah pertama adalah membuat file utama (main file).my-first-plugin.phpStruktur dasar isi file harus dimulai dengan komentar di bagian kepala plugin:

<?php
/**
 * Plugin Name:       我的第一个插件
 * Plugin URI:        https://yourwebsite.com/my-first-plugin
 * Description:       这是一个用于学习插件开发的示例插件,它将在后台显示欢迎信息。
 * Version:           1.0.0
 * Author:            开发者姓名
 * Author URI:        https://yourwebsite.com
 * License:           GPL v2 or later
 * Text Domain:       my-first-plugin
 * Domain Path:       /languages
 */

Kepala-kepala komentar ini bersifat wajib (memaksa penggunaannya), dan WordPress mengandalkan mereka untuk mengenali serta menampilkan plugin Anda di halaman pengelolaan plugin. Di antaranya,Text Domainuntuk internasionalisasi (i18n).Domain PathDirektori tempat berada file bahasa telah ditentukan (jika diperlukan).

Selanjutnya, kita akan menambahkan fitur-fitur inti. Dalam contoh ini, kita akan menggunakan…admin_notices“Hook.” Tambahkan kode berikut di bawah komentar di bagian atas:

推荐阅读 Panduan Lengkap Pengembangan Plugin WordPress: Tutorial Praktis Dari Pemula Hingga Ahli

// 使用 admin_notices 钩子在管理后台输出提示信息
add_action( ‘admin_notices’, ‘my_first_plugin_display_admin_greeting’ );

/**
 * 在管理后台显示欢迎信息的函数
 * @return void
 */
function my_first_plugin_display_admin_greeting() {
    // 检查当前用户是否有权限,确保只在后台显示
    if ( ! current_user_can( ‘manage_options’ ) ) {
        return;
    }
    ?&gt;
    <div class="notice notice-success is-dismissible">
        <p><?php _e( ‘欢迎使用我的第一个插件!插件开发之旅正式开始!’, ‘my-first-plugin’ ); ?></p>
    </div>
    \n&lt;?php
}

Setelah menyimpan file tersebut, masuklah ke panel administrasi WordPress Anda, lalu kunjungi halaman “Plugin”. Anda seharusnya dapat melihat plugin dengan nama “My First Plugin” muncul dalam daftar plugin. Klik tombol “Aktifkan”. Setelah diaktifkan, perbarui halaman administrasi apa pun (misalnya, Dashboard), dan Anda seharusnya akan melihat pesan peringatan berwarna hijau yang menyatakan bahwa proses aktivasi berhasil. Pesan tersebut berisi salam selamat yang telah kita definisikan dalam kode kita. Ini merupakan implementasi fungsi yang sederhana namun lengkap, yang membuktikan bahwa lingkungan pengembangan Anda dan struktur plugin Anda berfungsi dengan benar.

Teknologi Inti WordPress: Hook dan Filter

Memahami dan menguasai penggunaan hook (pemanggil fungsi tertentu dalam WordPress) merupakan hal yang sangat penting dalam pengembangan plugin WordPress. Hook terbagi menjadi dua jenis: Action dan Filter. Hook tipe Action memungkinkan Anda untuk menyisipkan dan menjalankan kode kustom pada titik waktu tertentu, misalnya setelah artikel diterbitkan atau sebelum bagian header halaman dimuat. Hook yang kami gunakan sebelumnya adalah contoh dari jenis Action.admin_noticesHanya sebuah “action hook” saja. Sedangkan “filter hook” memungkinkan Anda untuk memodifikasi data yang dihasilkan atau ditransmisikan selama proses berlangsung, misalnya mengubah isi judul artikel atau hasil pencarian dari sebuah plugin.

Bagaimana cara menambahkan sebuah aksi kustom?

Aksi berhasil dilakukan.add_action()Fungsi ditambahkan. Sintaksnya adalah:add_action( ‘hook_name’, ‘your_function_name’, priority, accepted_args )Prioritas (priority) adalah sebuah bilangan bulat; semakin kecil angkanya, semakin cepat proses tersebut akan dieksekusi. Nilai defaultnya adalah 10. Misalnya, jika Anda ingin menambahkan beberapa kode HTML khusus setelah isi artikel, Anda dapat mengatur prioritasnya menjadi lebih rendah agar kode tersebut dieksekusi setelah isi artikel selesai diproses.

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.
add_action( ‘the_content’, ‘my_custom_content_append’ );
function my_custom_content_append( $content ) {
    // 只在单篇文章主循环内生效
    if ( is_single() &amp;&amp; in_the_loop() &amp;&amp; is_main_query() ) {
        $extra_content = ‘<div class="“my-custom-box”"><p>Ini adalah konten kustom yang ditambahkan melalui plugin.</p></div>’;
        $content .= $extra_content;
    }
    return $content;
}

Perhatikan, meskipun…the_contentIni adalah sebuah filter (yang perlu mengembalikan hasil setelah modifikasi).$contentWordPress juga menggunakannya sebagai titik pemicu (trigger point) untuk suatu aksi tertentu. Pendekatan yang lebih ketat adalah dengan menggunakan…add_filter

Bagaimana cara menambahkan filter kustom?

Filter berhasil diaktifkan (atau “dioperasikan”).add_filter()Penambahan fungsi. Sintaksisnya adalah…add_action()Contoh yang sering terjadi adalah mengubah panjang kutipan dari sebuah artikel.

add_filter( ‘excerpt_length’, ‘my_custom_excerpt_length’, 999 );
function my_custom_excerpt_length( $length ) {
    // 将默认的55个词改为20个词
    return 20;
}

Anda dapat membuat “hook” (pautan fungsional) sendiri sehingga plugin Anda juga dapat diperluas oleh pengembang lain atau tema lainnya. Gunakan fitur ini untuk memperluas fungsionalitas plugin Anda.do_action()Untuk mendefinisikan sebuah “action hook”, gunakan…apply_filters()Mari kita definisikan sebuah “filter hook”. Ini merupakan kunci untuk membangun plugin yang modular dan dapat diperluas (dikembangkan lebih lanjut).

推荐阅读 Panduan Lengkap Pengembangan Plugin WordPress: Dari Dasar hingga Tingkat Lanjut

Pengembangan Fungsi Plugin dan Praktik Terbaik

Ketika fungsi-fungsi plugin semakin kompleks, organisasi kode yang baik, keamanan, kemudahan pemeliharaan, dan kinerja menjadi sangat penting. Salah satu praktik umum yang digunakan adalah dengan menggunakan Pemrograman Berorientasi Objek (Object-Oriented Programming/OOP) untuk mengatur struktur kode, dengan mengemas fungsi dan data yang terkait dalam sebuah kelas utama.

Menggunakan pemrograman berorientasi objek untuk mengenkapsulasi kode.

Membuat sebuah kelas utama (main class) dapat membantu mengelola status dan metode dari plugin dengan lebih baik, serta menghindari konflik nama fungsi. Berikut adalah contoh sederhana dari struktur pemrograman berorientasi objek (Object-Oriented Programming/OOP):

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.
<?php
/**
 * Plugin Name:       进阶示例插件
 */
if ( ! class_exists( ‘My_Advanced_Plugin’ ) ) {
    class My_Advanced_Plugin {
        /**
         * 构造方法,用于初始化钩子
         */
        public function __construct() {
            add_action( ‘init’, array( $this, ‘register_custom_post_type’ ) );
            add_action( ‘admin_menu’, array( $this, ‘add_admin_menu_page’ ) );
            add_filter( ‘the_title’, array( $this, ‘filter_post_title_prefix’ ), 10, 2 );
        }

/**
         * 注册一个自定义文章类型
         */
        public function register_custom_post_type() {
            $args = array(
                ‘public’ => true,
                ‘label’  => ‘我的产品’,
                ‘supports’ => array( ‘title’, ‘editor’, ‘thumbnail’ ),
                ‘has_archive’ => true,
            );
            register_post_type( ‘my_product’, $args );
        }

/**
         * 在文章标题前添加前缀的过滤器
         * @param string $title 原标题
         * @param int    $id    文章ID
         * @return string 修改后的标题
         */
        public function filter_post_title_prefix( $title, $id = null ) {
            if ( ! is_admin() && in_the_loop() ) {
                $title = ‘[精品] ’ . $title;
            }
            return $title;
        }

// ... 其他方法
    }
    // 实例化插件类
    new My_Advanced_Plugin();
}

Struktur ini mengorganisir fungsi-fungsi yang terkait bersama-sama, sehingga kode menjadi lebih jelas dan mudah dikelola.

Menjaga keamanan dan kinerja plugin

Keamanan adalah prioritas utama dalam pengembangan plugin. Jangan pernah mempercayai input dari pengguna. Untuk semua data yang berasal dari pengguna…$_GET$_POST$_REQUESTData yang diperoleh perlu melalui proses validasi (validation), sanitasi (sanitization), dan pengelolaan karakter escape (escaping). WordPress menyediakan serangkaian fungsi bantu untuk hal tersebut:
* 验证:check_ajax_referer()wp_verify_nonce()
* 清理:sanitize_text_field()sanitize_email()absint()
* 转义:esc_html()esc_url()wp_kses_post()

Sebelum mengeluarkan data apa pun ke dalam HTML, atribut, atau URL, pastikan untuk menggunakan fungsi escape yang sesuai. Dari segi kinerja, gunakan hook dengan bijak untuk menghindari eksekusi kueri yang membutuhkan banyak sumber daya setiap kali halaman diunduh. Pertimbangkan untuk menggunakan fitur cache sementara (Transients API) dari WordPress untuk menyimpan hasil kueri yang tidak kritis dan dapat diulang selama periode waktu tertentu.

Membuat halaman pengaturan untuk plugin

Sebagian besar plugin memerlukan halaman pengaturan yang dapat diatur oleh pengguna. Hal ini biasanya dilakukan melalui…add_options_page()add_menu_page()Fungsi-fungsi seperti itu, dilampirkan/dimasukkan ke dalam…admin_menuImplementasikan fitur tersebut menggunakan “hook” (fungsi tambahan dalam WordPress). Untuk mengatur opsi-opsi tersebut, gunakan API Settings dari WordPress untuk melakukan proses pendaftaran, penyimpanan, dan verifikasi yang aman. Hal ini mencakup penggunaan fitur-fitur yang tersedia dalam API Settings.register_setting()add_settings_section()add_settings_field()Fungsi-fungsi seperti itu tidak hanya membantu memastikan keamanan (misalnya, verifikasi nilai nonce), tetapi juga menyediakan gaya antarmuka backend WordPress yang seragam.

Menyimpulkan.

Pengembangan plugin WordPress merupakan proses mengubah ide-ide kreatif menjadi fitur-fungsi yang nyata, yang dimulai dengan memahami struktur dasar plugin dan cara membangun lingkungan lokal (local environment) yang sesuai. Dengan membuat plugin sederhana berjudul “Hello World”, kita telah mempraktikkan seluruh proses dari pembuatan file hingga pengaktifan fungsi-fungsi tersebut. Inti dari pengembangan plugin terletak pada pemahaman yang mendalam dan pemanfaatan yang fleksibel terhadap sistem hook yang kuat yang disediakan oleh WordPress—yakni action dan filter—yang berfungsi sebagai jembatan untuk berinteraksi dengan inti WordPress serta komponen lainnya. Seiring dengan bertambahnya fitur dalam plugin, penggunaan pemrograman berorientasi objek, pematuhan terhadap standar pengkodean yang aman (verifikasi, pembersihan data, dan penggunaan mekanisme escaping), serta penggunaan API Settings untuk membuat halaman pengaturan, menjadi langkah-langkah kunci dalam menjaga plugin tetap stabil, aman, mudah diperawat, dan dapat diperluas. Dengan mengikuti panduan dan praktik terbaik ini, Anda akan mampu dengan percaya diri membuat berbagai jenis plugin WordPress berkualitas tinggi, mulai dari alat sederhana hingga aplikasi yang kompleks.

FAQ - Pertanyaan yang Sering Diajukan.

Apa saja pengetahuan dasar yang diperlukan untuk mengembangkan plugin WordPress dengan nama ###?
Anda perlu memiliki pengetahuan dasar tentang bahasa pemrograman PHP, karena plugin tersebut terutama ditulis menggunakan PHP. Selain itu, pemahaman dasar tentang HTML, CSS, dan JavaScript akan membantu Anda dalam membuat plugin yang memiliki interaksi antarmuka pengguna (front-end). Yang paling penting, Anda perlu mengenal konsep-konsep dasar WordPress, seperti artikel, halaman, kategori, peran pengguna (user roles), serta sistem hook (hook system) yang sangat penting dalam pengembangan plugin.

Bagaimana cara mendebug plugin WordPress yang sedang dikembangkan?

Dianjurkan dengan kuat untuk mengaktifkannya di lingkungan pengembangan.WP_DEBUGPola dan pengaturan terkait telah dijelaskan pada bagian pembangunan lingkungan teks utama. Hal ini akan mencatat kesalahan PHP, peringatan, dan notifikasi ke dalam berkas log. Selain itu, Anda dapat menggunakan…error_log()Fungsi atau fungsi bantu (helper functions) seperti…var_dump()\nBekerja samawp_die()Gunakan nilai variabel tersebut untuk melakukan pemeriksaan. Tab Console dan Network pada alat pengembang browser sangat penting untuk mendeteksi dan memperbaiki masalah terkait JavaScript serta permintaan AJAX.

Bagaimana cara agar plugin saya kompatibel dengan berbagai versi WordPress?

Dalam kode plugin, Anda sebaiknya memeriksa apakah fungsi atau kelas tertentu tersedia di versi WordPress yang Anda gunakan, sebelum menggunakannya. Anda dapat menggunakan alat atau metode tertentu untuk melakukan hal ini.function_exists()is_admin()Pengujian kondisi seperti ini dilakukan dalam deskripsi plugin, dan dapat dilakukan melalui komentar di bagian header plugin.Requires at least:Gunakan kolom tersebut untuk menyatakan versi WordPress minimum yang diperlukan. Menjalankan pengujian berkala terhadap kompatibilitas plugin Anda dengan versi terbaru dari inti WordPress merupakan kebiasaan yang baik.

Bagaimana cara mengimplementasikan internasionalisasi untuk plugin saya agar dapat mendukung berbagai bahasa?

Anda perlu menggunakan fungsi penerjemahan dari WordPress untuk mengelilingi semua teks yang perlu diterjemahkan. Misalnya, gunakan:__( ‘文本’, ‘your-plugin-text-domain’ )Untuk mengekspor teks terjemahan, gunakan_e( ‘文本’, ‘your-plugin-text-domain’ )Gunakan fitur “direct echo” untuk memperoleh hasil yang diinginkan. Anda perlu mengatur pengaturan dengan benar dalam komentar di bagian awal plugin (plugin header comments).Text DomainDomain PathKemudian, gunakan alat seperti Poedit untuk membuatnya..potFile template; penerjemah dapat menggunakan file ini sebagai dasar untuk membuat konten baru..po.moFile bahasa (language file).

Setelah pengembangan selesai, bagaimana cara mengirimkan plugin ke direktori plugin resmi?

Pertama-tama, Anda perlu mendaftarkan akun di situs resmi WordPress dan mengirimkan plugin Anda untuk ditinjau. Kode Anda harus memenuhi standar dan pedoman pemrograman resmi, termasuk aspek keamanan, bebas dari kode berbahaya, serta kompatibilitas dengan lisensi GPL. Struktur direktori plugin Anda harus mencakup file PHP utama, sebuah…readme.txtFile (dalam format yang sesuai dengan standar tertentu), beserta tangkapan layar (screenshot) dan ikon (icon) yang dapat disertakan (opsional). Proses peninjauan mungkin memerlukan waktu; tim akan memeriksa kode Anda untuk memastikan bahwa kode tersebut memenuhi persyaratan yang dibutuhkan.