{"id":67910,"date":"2026-09-08T08:25:00","date_gmt":"2026-09-08T01:25:00","guid":{"rendered":"https:\/\/www.rumahweb.com\/journal\/?p=67910"},"modified":"2026-09-04T16:28:53","modified_gmt":"2026-09-04T09:28:53","slug":"cara-membuat-plugin-wordpress","status":"publish","type":"post","link":"https:\/\/www.rumahweb.com\/journal\/cara-membuat-plugin-wordpress\/","title":{"rendered":"Cara Membuat Plugin WordPress Sendiri Sampai Bisa Di Install"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Sebagai pengguna WordPress yang sudah cukup mahir, Anda mungkin sudah terbiasa menginstal, mengonfigurasi, hingga mengutak-atik berbagai plugin untuk menyesuaikan fungsi website. Namun, ada kalanya plugin yang tersedia belum mampu memenuhi kebutuhan spesifik Anda. Pada kondisi seperti ini, membuat plugin WordPress sendiri bisa menjadi solusi agar fitur yang dibutuhkan dapat dibuat sesuai kebutuhan Anda.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dalam artikel ini, kita akan memandu Anda membuat <em>plugin<\/em> WordPress pertama dari awal, mulai dari struktur folder, menulis kode, menambah keamanan dasar, sampai proses install plugin ke dashboard.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Ringkasan Cepat<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Semua kode fungsi di artikel ini ditulis berurutan di satu file yang sama, yaitu file utama <em>plugin<\/em>.<\/li>\n\n\n\n<li>Fungsi, <em>shortcode<\/em>, aset CSS\/JS, dan halaman pengaturan ditambahkan bertahap, ditumpuk ke bawah di file yang sama.<\/li>\n\n\n\n<li>Keamanan dasar seperti <em>escaping<\/em> output, <em>nonce<\/em>, dan <em>capability check<\/em> wajib ada sejak awal, bukan ditambah belakangan.<\/li>\n\n\n\n<li>Setelah teruji di lingkungan <em>staging<\/em>, <em>plugin<\/em> bisa dikemas jadi ZIP dan diinstall seperti <em>plugin<\/em> pihak ketiga.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Apa itu Plugin pada WordPress?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Plugin adalah fitur tambahan yang dapat dipasang pada WordPress untuk menambahkan fungsi tertentu tanpa harus mengubah kode utama WordPress. Misalnya, Anda bisa menggunakan plugin untuk menambahkan formulir kontak, meningkatkan keamanan, membuat toko <em>online<\/em>, atau menambahkan fitur lain sesuai kebutuhan website.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Secara sederhana, plugin bekerja sebagai tambahan fitur yang terpisah dari sistem utama WordPress. Karena itu, Anda tidak perlu mengubah file inti WordPress atau tema untuk menambahkan fungsi baru. Plugin juga tetap dapat digunakan meskipun Anda mengganti tema website.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Jika membutuhkan fitur yang tidak tersedia pada plugin yang sudah ada, Anda juga bisa membuat plugin WordPress sendiri. Dengan cara ini, fungsi dan fitur plugin dapat dibuat sesuai kebutuhan website tanpa bergantung pada plugin dari pihak lain.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Plugin Sendiri vs Custom Code di functions.php Theme<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Banyak pengguna WordPress yang sudah mahir justru terbiasa menaruh kode kustom langsung di <code>functions.php<\/code> tema aktif. Cara ini memang lebih cepat, tapi punya risiko yang sering baru terasa belakangan.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Aspek<\/th><th>Kode di functions.php Tema<\/th><th>Plugin Terpisah<\/th><\/tr><\/thead><tbody><tr><td>Saat ganti tema<\/td><td>Fungsi ikut hilang<\/td><td>Fungsi tetap aktif<\/td><\/tr><tr><td>Portabilitas<\/td><td>Sulit dipindahkan ke website lain<\/td><td>Tinggal salin folder <em>plugin<\/em><\/td><\/tr><tr><td>Risiko error<\/td><td>Bisa merusak seluruh tampilan tema<\/td><td>Bisa dinonaktifkan sendiri tanpa mengganggu tema<\/td><\/tr><tr><td>Pengelolaan versi<\/td><td>Bercampur dengan kode tema<\/td><td>Terpisah dan lebih mudah dilacak<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Melihat perbandingan di atas, membuat <em>plugin<\/em> terpisah jelas lebih masuk akal untuk fungsi yang sifatnya jangka panjang atau ingin dipakai di beberapa website.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Apa Saja yang Dibutuhkan untuk Membuat Plugin WordPress?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Sebelum mulai menulis kode, pastikan Anda sudah menyiapkan beberapa hal berikut.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Pemahaman dasar PHP, terutama fungsi, array, dan struktur kondisional.<\/li>\n\n\n\n<li>Text editor atau IDE, misalnya VS Code atau Sublime Text.<\/li>\n\n\n\n<li>Akses ke <em>file manager<\/em> cPanel atau FTP (misalnya FileZilla) untuk mengunggah <em>plugin<\/em> ke server.<\/li>\n\n\n\n<li>Website WordPress yang sebaiknya dijalankan di lingkungan uji coba terlebih dahulu, bukan langsung di website utama yang sudah live.<\/li>\n\n\n\n<li>Mode <code>WP_DEBUG<\/code> aktif di <code>wp-config.php<\/code> agar setiap error pada kode langsung terlihat saat pengujian.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Kalau website Anda menggunakan hosting cPanel, Anda bisa memanfaatkan fitur <em>staging<\/em> di WP Toolkit untuk membuat salinan uji coba tanpa mengganggu website utama, atau memakai WP-CLI kalau lebih terbiasa bekerja lewat <em>command line<\/em>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Struktur Folder Plugin WordPress<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Setiap <em>plugin<\/em> WordPress wajib berada dalam satu folder tersendiri di dalam direktori <code>wp-content\/plugins\/<\/code>. Untuk <em>plugin<\/em> sederhana, struktur berikut sudah cukup.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/09\/Struktur-Folder-Plugin-di-WordPress.png\"><img loading=\"lazy\" decoding=\"async\" width=\"665\" height=\"276\" src=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/09\/Struktur-Folder-Plugin-di-WordPress.png\" alt=\"Struktur Folder Plugin WordPress\" class=\"wp-image-67919\" srcset=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/09\/Struktur-Folder-Plugin-di-WordPress.png 665w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/09\/Struktur-Folder-Plugin-di-WordPress-300x125.png 300w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/09\/Struktur-Folder-Plugin-di-WordPress-570x237.png 570w\" sizes=\"auto, (max-width: 665px) 100vw, 665px\" \/><\/a><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">File utama harus memiliki nama yang sama dengan folder induknya, karena WordPress mengenali <em>plugin<\/em> dari file PHP yang memiliki <em>header comment<\/em> khusus, bukan dari nama foldernya saja. Folder <code>languages\/<\/code> akan berguna nanti saat <em>plugin<\/em> disiapkan untuk dibagikan ke pengguna lain.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Supaya tidak membingungkan, semua contoh fungsi PHP di artikel ini sengaja ditulis di <strong>satu file yang sama<\/strong>, yaitu <code>plugin-pertama-anda.php<\/code>. Setiap kode baru yang muncul di section berikutnya cukup Anda tambahkan di bagian paling bawah, di bawah kode sebelumnya, bukan dibuat sebagai file terpisah.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Cara Membuat File Utama Plugin WordPress<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">File utama inilah yang membuat WordPress mengenali folder Anda sebagai sebuah <em>plugin<\/em>. Buat file <code>plugin-pertama-anda.php<\/code>, lalu isi dengan kode berikut sebagai baris paling awal file.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?php\n\/**\n * Plugin Name: Plugin Pertama Anda\n * Plugin URI: https:\/\/contoh.com\n * Description: Plugin sederhana sebagai latihan pertama membuat plugin WordPress.\n * Version: 1.0.0\n * Author: Nama Anda\n * License: GPL v2 or later\n * Text Domain: plugin-pertama-anda\n *\/\n\nif ( ! defined( 'ABSPATH' ) ) {\n    exit; \/\/ Cegah akses langsung ke file.\n}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Kode ini disebut <strong><em>header comment<\/em><\/strong>, isinya metadata <em>plugin<\/em> yang dibaca WordPress untuk ditampilkan di halaman Plugins. Baris <code>if ( ! defined( 'ABSPATH' ) )<\/code> berfungsi mencegah file diakses langsung lewat URL, sehingga tidak jadi celah keamanan. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Semua kode fungsi di section-section berikutnya akan ditambahkan tepat di bawah blok ini, masih dalam file <code>plugin-pertama-anda.php<\/code> yang sama.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 1. Membuat Fungsi Sederhana pada Plugin<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Sekarang tambahkan fungsi pertama Anda, masih di file <code>plugin-pertama-anda.php<\/code>, di bawah kode <em>header comment<\/em> tadi. Fungsi ini bernama <code>pw_tambahkan_teks_penutup<\/code>, tugasnya menambahkan kalimat penutup otomatis di setiap halaman artikel tunggal.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>function pw_tambahkan_teks_penutup( $content ) {\n    if ( is_single() ) {\n        $content .= '&lt;p&gt;Terima kasih sudah membaca artikel ini.&lt;\/p&gt;';\n    }\n    return $content;\n}\nadd_filter( 'the_content', 'pw_tambahkan_teks_penutup' );\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Perhatikan penamaan fungsi <code>pw_tambahkan_teks_penutup<\/code>, di mana <code>pw<\/code> berperan sebagai <em>prefix<\/em> unik. Kebiasaan ini penting untuk menghindari bentrok nama fungsi dengan <em>plugin<\/em> atau tema lain yang mungkin memakai nama fungsi serupa. Baris <code>add_filter(...)<\/code> di bagian bawah adalah baris yang benar-benar &#8220;menyalakan&#8221; fungsi ini, jadi jangan sampai terlewat saat menyalin kode.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 2. Menambahkan Shortcode ke Plugin WordPress<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Tambahkan lagi fungsi berikut di bawah function <code>pw_tambahkan_teks_penutup<\/code> tadi di file <code>plugin-pertama-anda.php<\/code>. Fungsi ini bernama <code>pw_shortcode_sapaan<\/code>, dan tugasnya membuat <em>shortcode<\/em> baru bernama <code>sapaan<\/code> yang bisa dipakai langsung di editor konten.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>function pw_shortcode_sapaan( $atts ) {\n    $atts = shortcode_atts( array(\n        'nama' =&gt; 'Pembaca',\n    ), $atts );\n\n    return 'Halo, ' . esc_html( $atts&#91;'nama'] ) . '! Selamat datang di website ini.';\n}\nadd_shortcode( 'sapaan', 'pw_shortcode_sapaan' );\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Setelah <em>plugin<\/em> aktif, Anda bisa menuliskan <code>[sapaan nama=\"Lutfi\"]<\/code> di halaman atau artikel mana pun, dan WordPress akan otomatis menampilkan sapaan sesuai nama yang Anda tulis. Perhatikan penggunaan <code>esc_html()<\/code> yang membungkus nilai atribut, ini bukan langkah opsional karena berfungsi mencegah input berbahaya ditampilkan mentah di halaman.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 3. Memuat CSS dan JS dengan Benar<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Tambahkan fungsi berikut di bawah fungsi shortcode tadi, masih di file <code>plugin-pertama-anda.php<\/code> yang sama. Fungsi ini bernama <code>pw_muat_aset<\/code>, tugasnya memuat file CSS dan JS yang sudah Anda siapkan di folder <code>assets\/css\/style.css<\/code> dan <code>assets\/js\/script.js<\/code> sesuai struktur folder di awal artikel.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>function pw_muat_aset() {\n    wp_enqueue_style( 'pw-style', plugin_dir_url( __FILE__ ) . 'assets\/css\/style.css', array(), '1.0.0' );\n    wp_enqueue_script( 'pw-script', plugin_dir_url( __FILE__ ) . 'assets\/js\/script.js', array( 'jquery' ), '1.0.0', true );\n}\nadd_action( 'wp_enqueue_scripts', 'pw_muat_aset' );\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Menaruh <code>&lt;style&gt;<\/code> atau <code>&lt;script&gt;<\/code> langsung di dalam fungsi PHP sebaiknya dihindari, karena cara di atas membuat WordPress otomatis mengatur urutan pemuatan file, mencegah aset dimuat dua kali, dan menghindari konflik dengan <em>plugin<\/em> atau tema lain yang memuat pustaka yang sama, misalnya jQuery.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 4. Menambahkan Halaman Pengaturan di Plugin<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Tambahkan dua fungsi berikut di bawah fungsi <code>pw_muat_aset<\/code> tadi, masih di file yang sama. Fungsi pertama, <code>pw_tambah_menu_pengaturan<\/code>, membuat menu baru di Dashboard. Fungsi kedua, <code>pw_render_halaman_pengaturan<\/code>, menampilkan isi halamannya.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>function pw_tambah_menu_pengaturan() {\n    add_menu_page(\n        'Pengaturan Plugin Pertama',\n        'Plugin Pertama',\n        'manage_options',\n        'plugin-pertama-anda',\n        'pw_render_halaman_pengaturan',\n        'dashicons-admin-plugins',\n        80\n    );\n}\nadd_action( 'admin_menu', 'pw_tambah_menu_pengaturan' );\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Fungsi <code>pw_render_halaman_pengaturan<\/code> sengaja belum ditulis lengkap di sini, karena isi lengkapnya baru dibahas di section berikutnya, sekalian dengan pengecekan keamanannya. Kalau Anda ingin mencoba dulu tanpa fitur keamanan, isi sementara boleh sesederhana ini.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>function pw_render_halaman_pengaturan() {\n    echo '&lt;div class=\"wrap\"&gt;&lt;h1&gt;Pengaturan Plugin Pertama&lt;\/h1&gt;&lt;p&gt;Halaman ini bisa dikembangkan lebih lanjut sesuai kebutuhan.&lt;\/p&gt;&lt;\/div&gt;';\n}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Parameter <code>'manage_options'<\/code> pada <code>add_menu_page()<\/code> menentukan siapa saja yang boleh mengakses halaman ini, dalam contoh ini hanya pengguna dengan peran administrator.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Step 5. Menambahkan Nonce dan Capability Check untuk Keamanan<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Sekarang, ganti isi fungsi <code>pw_render_halaman_pengaturan<\/code> yang tadi sederhana dengan versi lengkap berikut, supaya halaman pengaturan Anda sudah punya form sekaligus pengecekan keamanannya. Fungsi lain di file yang sama tidak perlu diubah.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>function pw_render_halaman_pengaturan() {\n\n    if ( ! current_user_can( 'manage_options' ) ) {\n        return;\n    }\n\n    if ( isset( $_POST&#91;'pw_simpan'] ) ) {\n        if ( ! isset( $_POST&#91;'pw_nonce_field'] ) || ! wp_verify_nonce( $_POST&#91;'pw_nonce_field'], 'pw_simpan_pengaturan' ) ) {\n            wp_die( 'Permintaan tidak valid.' );\n        }\n        echo '&lt;div class=\"notice notice-success\"&gt;&lt;p&gt;Pengaturan berhasil disimpan.&lt;\/p&gt;&lt;\/div&gt;';\n    }\n    ?&gt;\n    &lt;div class=\"wrap\"&gt;\n        &lt;h1&gt;Pengaturan Plugin Pertama&lt;\/h1&gt;\n        &lt;form method=\"post\"&gt;\n            &lt;?php wp_nonce_field( 'pw_simpan_pengaturan', 'pw_nonce_field' ); ?&gt;\n            &lt;p&gt;Halaman ini bisa dikembangkan dengan menambah field pengaturan sesuai kebutuhan.&lt;\/p&gt;\n            &lt;button type=\"submit\" name=\"pw_simpan\" class=\"button button-primary\"&gt;Simpan&lt;\/button&gt;\n        &lt;\/form&gt;\n    &lt;\/div&gt;\n    &lt;?php\n}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Ada tiga bagian penting di kode ini. <\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Pertama, <code>current_user_can( 'manage_options' )<\/code> di baris paling atas fungsi memastikan hanya administrator yang bisa membuka halaman ini. <\/li>\n\n\n\n<li>Kedua, <code>wp_nonce_field( 'pw_simpan_pengaturan', 'pw_nonce_field' )<\/code> diletakkan di dalam tag <code>&lt;form><\/code>, tugasnya menyisipkan token rahasia tersembunyi ke form.<\/li>\n\n\n\n<li>Ketiga, saat form disubmit, <code>wp_verify_nonce()<\/code> mencocokkan token tersebut untuk memastikan permintaan benar-benar berasal dari halaman Anda, bukan dari pihak luar. Dua lapis ini sering dilewatkan pemula, padahal jadi pertahanan dasar terhadap serangan seperti CSRF.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Step 6. Menambahkan CSS dan Javascript<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Langkah selanjutnya, buatlah folder dengan nama assets. Dalam folder ini, buat juga 2 folder baru dengan nama css dan js. Lalu, tambahkan <em>script <\/em>berikut:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>buat file dengan nama <code>style.css<\/code> pada directory <em>\/assets\/css<\/em>. <\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>\/*\n * Stylesheet contoh untuk Plugin Pertama Anda.\n * Dimuat lewat wp_enqueue_style() di plugin-pertama-anda.php.\n * Silakan ganti isi file ini sesuai kebutuhan tampilan plugin Anda.\n *\/\n\n.pw-sapaan {\n    font-weight: bold;\n    color: #2271b1;\n}<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>buat file <code>script.js<\/code> pada directory <code>\/assets\/js<\/code>. <\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>\/**\n * Script contoh untuk Plugin Pertama Anda.\n * Dimuat lewat wp_enqueue_script() di plugin-pertama-anda.php.\n * Silakan ganti isi file ini sesuai kebutuhan fungsi plugin Anda.\n *\/\njQuery( document ).ready( function ( $ ) {\n    console.log( 'Plugin Pertama Anda: script berhasil dimuat.' );\n} );\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Step 7. Buat file readme.txt<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Langkah terakhir, buatlah file <code>readme.txt<\/code>. File ini berisi informasi penting tentang sebuah folder, program, atau perangkat lunak. File ini biasanya digunakan sebagai panduan singkat untuk menjelaskan isi, cara penggunaan, atau informasi lain yang perlu diketahui pengguna.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>=== Plugin Pertama Anda ===\nContributors: namaanda\nTags: latihan, plugin, wordpress\nRequires at least: 6.0\nTested up to: 6.6\nRequires PHP: 7.4\nStable tag: 1.0.0\nLicense: GPLv2 or later\nLicense URI: https:\/\/www.gnu.org\/licenses\/gpl-2.0.html\n\nPlugin latihan sebagai contoh pada panduan \"Cara Membuat Plugin WordPress Sendiri Sampai Bisa Di Install\" di Rumahweb Journal.\n\n== Description ==\n\nPlugin ini berisi contoh implementasi:\n* Filter the_content untuk menambah teks penutup\n* Shortcode &#91;sapaan]\n* Enqueue CSS\/JS\n* Halaman pengaturan di Dashboard dengan nonce dan capability check\n* Text domain untuk internasionalisasi\n\n== Installation ==\n\n1. Upload folder plugin ke direktori \/wp-content\/plugins\/\n2. Aktifkan plugin lewat menu Plugins di WordPress\n3. Buka menu \"Plugin Pertama\" di sidebar Dashboard untuk mengakses halaman pengaturan\n\n== Changelog ==\n\n= 1.0.0 =\n* Rilis pertama sebagai bahan latihan.\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Unduh File Plugin Lengkap<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Anda dapat mengunduh seluruh file <em>script <\/em>Plugin tutorial di atas melalui URL <a href=\"https:\/\/drive.google.com\/file\/d\/1rL_PEex5MRLpg2B_nXTo8CcCVXVi2Dqa\/view?usp=sharing\" target=\"_blank\" rel=\"noopener\">berikut<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Cara Mengaktifkan Plugin Melalui Dashboard<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Setelah seluruh <em>script <\/em>selesai dibuat dan struktur folder plugin sudah sesuai dengan rancangan awal, langkah berikutnya adalah menginstal plugin melalui dashboard WordPress. Berikut langkah-langkah instalasinya.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Login ke dashboard WordPress Anda. <\/li>\n\n\n\n<li>Klik menu Plugins > Add Plugins > Uploads Plugins. <\/li>\n\n\n\n<li>Klik Choose File, lalu unggah file plugin Anda yang telah dibuat .zip sebelumnya. Setelah itu, klik <strong>Install Now<\/strong>.<\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/09\/add-plugins.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"320\" src=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/09\/add-plugins-1024x320.png\" alt=\"tambah plugin\" class=\"wp-image-67923\" srcset=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/09\/add-plugins-1024x320.png 1024w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/09\/add-plugins-300x94.png 300w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/09\/add-plugins-765x239.png 765w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/09\/add-plugins-740x231.png 740w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/09\/add-plugins-570x178.png 570w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/09\/add-plugins.png 1364w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<ol start=\"4\" class=\"wp-block-list\">\n<li>Langkah terakhir, klik tombol Activate Plugin seperti gambar berikut. <\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/09\/Activate-Plugin.png\"><img loading=\"lazy\" decoding=\"async\" width=\"969\" height=\"353\" src=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/09\/Activate-Plugin.png\" alt=\"aktifkan plugin\" class=\"wp-image-67924\" srcset=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/09\/Activate-Plugin.png 969w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/09\/Activate-Plugin-300x109.png 300w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/09\/Activate-Plugin-766x279.png 766w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/09\/Activate-Plugin-570x208.png 570w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/09\/Activate-Plugin-740x270.png 740w\" sizes=\"auto, (max-width: 969px) 100vw, 969px\" \/><\/a><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Setelah plugin diaktifkan, Anda akan melihat menu baru di Dashboard WordPress Anda dengan nama &#8216;Plugin Pertama Anda&#8217;. <\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/09\/Tampilan-plugin-telah-aktif.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"509\" src=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/09\/Tampilan-plugin-telah-aktif-1024x509.png\" alt=\"tampilan plugin Anda\" class=\"wp-image-67925\" srcset=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/09\/Tampilan-plugin-telah-aktif-1024x509.png 1024w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/09\/Tampilan-plugin-telah-aktif-300x149.png 300w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/09\/Tampilan-plugin-telah-aktif-768x382.png 768w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/09\/Tampilan-plugin-telah-aktif-570x284.png 570w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/09\/Tampilan-plugin-telah-aktif-740x368.png 740w, https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/09\/Tampilan-plugin-telah-aktif.png 1355w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Bagaimana Cara Mengembangkan Plugin Ini?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Versi yang sudah Anda install ini baru fondasi dasarnya saja. Setelah plugin berjalan lancar, ada beberapa arah pengembangan yang dapat Anda lakukan selanjutnya, tergantung kebutuhan.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Tambah lebih banyak shortcode atau fungsi<\/strong>, dengan pola penamaan <em>prefix<\/em> yang sama seperti <code>pw_shortcode_sapaan<\/code>, supaya kode tetap konsisten dan mudah dilacak.<\/li>\n\n\n\n<li><strong>Ganti form pengaturan manual dengan Settings API<\/strong>, yaitu <code>register_setting()<\/code>, <code>add_settings_field()<\/code>, dan sejenisnya. Form manual seperti di contoh ini cukup untuk latihan, tapi Settings API lebih aman dan lebih mudah dikembangkan kalau field pengaturannya sudah banyak.<\/li>\n\n\n\n<li><strong>Pisahkan kode ke beberapa file<\/strong> begitu <code>plugin-pertama-anda.php<\/code> mulai terasa panjang, misalnya <code>includes\/shortcodes.php<\/code> dan <code>includes\/settings.php<\/code>, lalu panggil lewat <code>require_once<\/code> di file utama.<\/li>\n\n\n\n<li><strong>Pakai plugin Query Monitor<\/strong> selama masa pengembangan untuk memantau <em>hook<\/em> mana saja yang berjalan, query database, dan potensi error, jauh lebih detail dibanding sekadar membaca <code>debug.log<\/code>.<\/li>\n\n\n\n<li><strong>Terapkan WordPress Coding Standards (PHPCS)<\/strong> kalau <em>plugin<\/em> ini rencananya mau dipakai jangka panjang atau dikerjakan bareng orang lain, supaya gaya penulisan kode tetap seragam.<\/li>\n\n\n\n<li><strong>Naikkan nomor versi di header comment setiap ada perubahan<\/strong>, dan catat perubahannya di <code>readme.txt<\/code>, supaya riwayat pengembangan <em>plugin<\/em> ini tetap rapi dan mudah ditelusuri.<\/li>\n\n\n\n<li><strong>Simpan kode di sistem version control seperti Git<\/strong>, meski <em>plugin<\/em> ini sifatnya masih personal, karena akan sangat membantu kalau suatu saat perlu membalikkan perubahan yang ternyata bermasalah.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Kalau ke depannya <em>plugin<\/em> ini ingin dipublikasikan secara luas, langkah lanjutannya adalah menyesuaikan dengan pedoman resmi WordPress.org sebelum diajukan ke direktori <em>plugin<\/em> publik.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Cara Mengatasi <em>White Screen of Death<\/em> Saat Plugin Gagal Aktif<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Layar putih kosong setelah mengaktifkan <em>plugin<\/em> hampir selalu berarti ada galat fatal pada kode PHP, misalnya ada fungsi yang tertulis dua kali atau tanda kurung kurawal yang tidak seimbang. Aktifkan <code>WP_DEBUG<\/code> dan <code>WP_DEBUG_LOG<\/code> di <code>wp-config.php<\/code>, lalu periksa file <code>wp-content\/debug.log<\/code> untuk melihat baris kode mana yang bermasalah.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Kalau website sampai tidak bisa diakses sama sekali, Anda tetap bisa memulihkannya lewat FTP atau <em>file manager<\/em> cPanel dengan mengganti nama folder <em>plugin<\/em> tersebut, misalnya menjadi <code>plugin-pertama-anda-nonaktif<\/code>. Langkah ini otomatis menonaktifkan <em>plugin<\/em> dari sisi server tanpa perlu masuk ke Dashboard.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Menyiapkan Plugin untuk Dibagikan<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Kalau <em>plugin<\/em> ini nantinya ingin dibagikan atau dijual, ada satu langkah tambahan yang perlu disiapkan sejak awal, yaitu internasionalisasi lewat <em>text domain<\/em>. Tambahkan fungsi berikut <strong>di bagian bawah file yang sama, setelah semua fungsi sebelumnya<\/strong>.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>function pw_muat_textdomain() {\n    load_plugin_textdomain( 'plugin-pertama-anda', false, dirname( plugin_basename( __FILE__ ) ) . '\/languages' );\n}\nadd_action( 'plugins_loaded', 'pw_muat_textdomain' );\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Setelah itu, bungkus setiap teks yang tampil ke pengguna dengan fungsi seperti <code>esc_html__( 'Teks Anda', 'plugin-pertama-anda' )<\/code>, bukan menuliskannya langsung sebagai string biasa. Kebiasaan ini membuat <em>plugin<\/em> Anda lebih siap dipakai oleh pengguna dari berbagai negara.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Kesalahan yang Sering Terjadi Saat Membuat Plugin WordPress<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Beberapa kesalahan berikut cukup umum terjadi, terutama saat baru pertama kali membuat <em>plugin<\/em>.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Lupa menambahkan <em>header comment<\/em>, sehingga WordPress tidak mengenali file sebagai <em>plugin<\/em>.<\/li>\n\n\n\n<li>Tidak memberi <em>prefix<\/em> unik pada nama fungsi, yang berisiko bentrok dengan <em>plugin<\/em> lain.<\/li>\n\n\n\n<li>Menampilkan input pengguna tanpa proses <em>escaping<\/em>, yang membuka celah keamanan.<\/li>\n\n\n\n<li>Melewatkan <em>nonce<\/em> dan <em>capability check<\/em> pada form atau aksi yang mengubah data.<\/li>\n\n\n\n<li>Menguji langsung di website utama tanpa lingkungan <em>staging<\/em>, sehingga kesalahan kode berdampak ke pengunjung nyata.<\/li>\n\n\n\n<li>Struktur folder ZIP yang salah, misalnya folder bersarang ganda, sehingga proses install gagal.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Tips Membuat Plugin WordPress yang Aman dan Mudah Dikembangkan<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Agar <em>plugin<\/em> buatan Anda tidak hanya berfungsi, tapi juga aman dan mudah dikembangkan di kemudian hari, terapkan beberapa kebiasaan berikut.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Gunakan <em>prefix<\/em> yang konsisten untuk semua nama fungsi, kelas, dan variabel global.<\/li>\n\n\n\n<li>Selalu bungkus output dengan fungsi <em>escaping<\/em> seperti <code>esc_html()<\/code>, <code>esc_attr()<\/code>, atau <code>esc_url()<\/code>.<\/li>\n\n\n\n<li>Kalau kode sudah mulai banyak, pisahkan ke beberapa file lewat <code>require_once<\/code>, jangan menumpuk semua logika di satu file utama selamanya.<\/li>\n\n\n\n<li>Uji setiap perubahan kode di lingkungan <em>staging<\/em> sebelum diterapkan ke website utama.<\/li>\n\n\n\n<li>Tambahkan file <code>readme.txt<\/code> sederhana agar Anda sendiri mudah mengingat fungsi <em>plugin<\/em> ini di masa depan.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">FAQ<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Berikut adalah beberapa pertanyaan umum tentang cara membuat plugin WordPress.<\/p>\n\n\n\n<details class=\"wp-block-details is-layout-flow wp-block-details-is-layout-flow\" style=\"font-style:normal;font-weight:700\"><summary>Apakah membuat plugin WordPress butuh keahlian coding tingkat lanjut?<\/summary>\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p class=\"wp-block-paragraph\" style=\"font-style:normal;font-weight:400\">Tidak selalu. Pemahaman dasar PHP dan struktur WordPress seperti hook sudah cukup untuk membuat plugin sederhana. Kompleksitas kode bisa ditingkatkan secara bertahap sesuai kebutuhan fitur Anda.<\/p>\n<\/details>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n\n<details class=\"wp-block-details is-layout-flow wp-block-details-is-layout-flow\" style=\"font-style:normal;font-weight:700\"><summary>Apakah plugin buatan sendiri aman digunakan di website utama?<\/summary>\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p class=\"wp-block-paragraph\" style=\"font-style:normal;font-weight:400\">Aman, selama sudah diuji terlebih dahulu di lingkungan staging dan mengikuti praktik keamanan dasar seperti escaping output, nonce, dan validasi input. Menguji langsung di website live tanpa uji coba sebelumnya justru berisiko menyebabkan error yang berdampak ke pengunjung.<\/p>\n<\/details>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n\n<details class=\"wp-block-details is-layout-flow wp-block-details-is-layout-flow\" style=\"font-style:normal;font-weight:700\"><summary>Apakah plugin harus di-upload dalam bentuk ZIP untuk bisa diinstall?<\/summary>\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p class=\"wp-block-paragraph\" style=\"font-style:normal;font-weight:400\">Tidak harus. Anda bisa langsung mengunggah folder plugin ke wp-content\/plugins\/ lewat FTP atau file manager cPanel saat masih dalam tahap pengembangan. Format ZIP lebih dibutuhkan saat plugin akan dibagikan atau diinstall lewat Dashboard WordPress.<\/p>\n<\/details>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n\n<details class=\"wp-block-details is-layout-flow wp-block-details-is-layout-flow\" style=\"font-style:normal;font-weight:700\"><summary>Bagaimana cara memperbarui plugin yang sudah pernah diinstall?<\/summary>\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p class=\"wp-block-paragraph\" style=\"font-style:normal;font-weight:400\">Cukup ubah nomor versi di header comment, perbarui kodenya, lalu ganti file yang ada di server dengan versi terbaru lewat FTP atau file manager. Jika sudah dalam bentuk ZIP, Anda juga bisa menghapus plugin lama lalu menginstall ulang file ZIP versi terbaru.<\/p>\n<\/details>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n\n<details class=\"wp-block-details is-layout-flow wp-block-details-is-layout-flow\" style=\"font-style:normal;font-weight:700\"><summary>Apakah plugin buatan sendiri bisa dijual atau dibagikan ke orang lain?<\/summary>\n<div style=\"height:10px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p class=\"wp-block-paragraph\" style=\"font-style:normal;font-weight:400\">Bisa. Selama kode tersebut murni buatan Anda atau tidak melanggar lisensi kode pihak ketiga yang digunakan, plugin tersebut bebas dibagikan secara gratis maupun dijual, misalnya lewat marketplace plugin WordPress.<\/p>\n<\/details>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity is-style-wide\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Penutup<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Membuat <em>plugin<\/em> WordPress sendiri sebenarnya bukan hal yang rumit begitu Anda memahami struktur dasarnya, mulai dari <em>header comment<\/em>, <em>hook<\/em>, halaman pengaturan, sampai lapisan keamanan seperti <em>nonce<\/em> dan <em>capability check<\/em>. Dengan mengikuti langkah-langkah di atas, Anda sudah punya modal cukup untuk mempraktikkan cara membuat <em>plugin<\/em> WordPress sesuai kebutuhan spesifik website Anda sendiri.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Proses uji coba akan jauh lebih tenang jika Anda memiliki lingkungan <em>staging<\/em> dan akses server yang mudah dikelola. Layanan <strong><a href=\"https:\/\/www.rumahweb.com\/hosting-murah\/\" target=\"_blank\" rel=\"noopener\" title=\"hosting murah\">Shared Hosting<\/a><\/strong> Rumahweb menyediakan cPanel lengkap dengan <em>file manager<\/em>, WP Toolkit, dan dukungan WP-CLI, sehingga Anda bisa mengunggah, menguji, sampai mengaktifkan <em>plugin<\/em> buatan sendiri tanpa perlu khawatir mengganggu website utama.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Sebagai pengguna WordPress yang sudah cukup mahir, Anda mungkin sudah terbiasa menginstal, mengonfigurasi, hingga mengutak-atik berbagai plugin untuk menyesuaikan fungsi website. Namun, ada kalanya plugin yang tersedia belum mampu memenuhi kebutuhan spesifik Anda. Pada kondisi seperti ini, membuat plugin WordPress sendiri bisa menjadi solusi agar fitur yang dibutuhkan dapat dibuat sesuai kebutuhan Anda. Dalam artikel [&hellip;]<\/p>\n","protected":false},"author":329,"featured_media":67929,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[463],"tags":[828,14],"class_list":["post-67910","post","type-post","status-publish","format-standard","has-post-thumbnail","category-wordpress","tag-plugin-wordpress","tag-wordpress"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"Pelajari cara membuat plugin WordPress sendiri dari nol, mulai dari struktur folder, kode utama, shortcode, sampai proses install plugin di dashboard wp.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Lutfi Hanif\"\/>\n\t<meta name=\"google-site-verification\" content=\"wPstUwU5246IbK_1PqwGrc1LoSDnB-9rPbcT8_vSNgQ\" \/>\n\t<meta name=\"keywords\" content=\"cara membuat plugin wordpress,membuat plugin wordpress,membuat plugin wordpress sendiri,plugin wordpress,wordpress\" \/>\n\t<link rel=\"canonical\" href=\"https:\/\/www.rumahweb.com\/journal\/cara-membuat-plugin-wordpress\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"id_Id\" \/>\n\t\t<meta property=\"og:site_name\" content=\"Rumahweb Journal \u2013 Panduan Website, Hosting, dan Server\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"Cara Membuat Plugin WordPress Sendiri Sampai Bisa Di Install\" \/>\n\t\t<meta property=\"og:description\" content=\"Pelajari cara membuat plugin WordPress sendiri dari nol, mulai dari struktur folder, kode utama, shortcode, sampai proses install plugin di dashboard wp.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/www.rumahweb.com\/journal\/cara-membuat-plugin-wordpress\/\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/09\/Banner-Cara-Membuat-Plugin-WordPress.webp\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/09\/Banner-Cara-Membuat-Plugin-WordPress.webp\" \/>\n\t\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t\t<meta property=\"og:image:height\" content=\"630\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2026-09-08T01:25:00+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2026-09-04T09:28:53+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/RumahwebIndonesia\/\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n\t\t<meta name=\"twitter:site\" content=\"@rumahwebtweet\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Cara Membuat Plugin WordPress Sendiri Sampai Bisa Di Install\" \/>\n\t\t<meta name=\"twitter:description\" content=\"Pelajari cara membuat plugin WordPress sendiri dari nol, mulai dari struktur folder, kode utama, shortcode, sampai proses install plugin di dashboard wp.\" \/>\n\t\t<meta name=\"twitter:creator\" content=\"@rumahwebtweet\" \/>\n\t\t<meta name=\"twitter:image\" content=\"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/09\/Banner-Cara-Membuat-Plugin-WordPress.webp\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Cara Membuat Plugin WordPress Sendiri Sampai Bisa Di Install","description":"Pelajari cara membuat plugin WordPress sendiri dari nol, mulai dari struktur folder, kode utama, shortcode, sampai proses install plugin di dashboard wp.","canonical_url":"https:\/\/www.rumahweb.com\/journal\/cara-membuat-plugin-wordpress\/","robots":"max-image-preview:large","keywords":"cara membuat plugin wordpress,membuat plugin wordpress,membuat plugin wordpress sendiri,plugin wordpress,wordpress","webmasterTools":{"google-site-verification":"wPstUwU5246IbK_1PqwGrc1LoSDnB-9rPbcT8_vSNgQ","miscellaneous":""},"schema":null,"og:locale":"id_Id","og:site_name":"Rumahweb Journal \u2013 Panduan Website, Hosting, dan Server","og:type":"article","og:title":"Cara Membuat Plugin WordPress Sendiri Sampai Bisa Di Install","og:description":"Pelajari cara membuat plugin WordPress sendiri dari nol, mulai dari struktur folder, kode utama, shortcode, sampai proses install plugin di dashboard wp.","og:url":"https:\/\/www.rumahweb.com\/journal\/cara-membuat-plugin-wordpress\/","og:image":"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/09\/Banner-Cara-Membuat-Plugin-WordPress.webp","og:image:secure_url":"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/09\/Banner-Cara-Membuat-Plugin-WordPress.webp","og:image:width":1200,"og:image:height":630,"article:published_time":"2026-09-08T01:25:00+00:00","article:modified_time":"2026-09-04T09:28:53+00:00","article:publisher":"https:\/\/www.facebook.com\/RumahwebIndonesia\/","twitter:card":"summary_large_image","twitter:site":"@rumahwebtweet","twitter:title":"Cara Membuat Plugin WordPress Sendiri Sampai Bisa Di Install","twitter:description":"Pelajari cara membuat plugin WordPress sendiri dari nol, mulai dari struktur folder, kode utama, shortcode, sampai proses install plugin di dashboard wp.","twitter:creator":"@rumahwebtweet","twitter:image":"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2026\/09\/Banner-Cara-Membuat-Plugin-WordPress.webp"},"aioseo_meta_data":{"post_id":"67910","title":null,"description":"Pelajari cara membuat plugin WordPress sendiri dari nol, mulai dari struktur folder, kode utama, shortcode, sampai proses install plugin di dashboard wp.","keywords":[{"label":"cara membuat plugin wordpress","value":"cara membuat plugin wordpress"},{"label":"membuat plugin wordpress","value":"membuat plugin wordpress"},{"label":"membuat plugin wordpress sendiri","value":"membuat plugin wordpress sendiri"}],"keyphrases":{"focus":{"keyphrase":"Membuat Plugin WordPress","score":0,"analysis":[]},"additional":[]},"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":"","og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"Article","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":"-1","robots_max_videopreview":"-1","robots_max_imagepreview":"large","priority":null,"frequency":"default","location":null,"local_seo":null,"breadcrumb_settings":null,"limit_modified_date":false,"ai":{"faqs":[],"keyPoints":[],"schemas":[],"titles":[],"descriptions":[],"socialPosts":{"email":{"subject":"","preview":"","content":""},"linkedin":[],"twitter":[],"facebook":[],"instagram":[]}},"created":"2026-09-04 07:38:58","updated":"2026-09-08 01:26:09","seo_analyzer_scan_date":null,"focus_keyword":"Membuat Plugin WordPress","additional_keywords":null,"truseo_locale":"id_ID"},"_links":{"self":[{"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/posts\/67910","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/users\/329"}],"replies":[{"embeddable":true,"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/comments?post=67910"}],"version-history":[{"count":21,"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/posts\/67910\/revisions"}],"predecessor-version":[{"id":67937,"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/posts\/67910\/revisions\/67937"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/media\/67929"}],"wp:attachment":[{"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/media?parent=67910"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/categories?post=67910"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/tags?post=67910"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}