{"id":5561,"date":"2017-09-06T07:01:41","date_gmt":"2017-09-06T07:01:41","guid":{"rendered":"https:\/\/blog.hostinger.io\/co-id-tutorial\/?p=5561"},"modified":"2025-01-08T15:54:31","modified_gmt":"2025-01-08T08:54:31","slug":"membuat-plugin-wordpress","status":"publish","type":"post","link":"\/id\/tutorial\/membuat-plugin-wordpress","title":{"rendered":"Membuat plugin WordPress sendiri dengan mudah"},"content":{"rendered":"<p>WordPress memiliki beragam plugin yang bisa menambahkan banyak sekali fungsionalitas kustom. Selain itu, plugin juga bisa menambahkan fitur baru ke website WordPress Anda tanpa mengharuskan Anda mengoprek coding intinya.<\/p><p>Meskipun ada banyak plugin gratis dan premium yang bisa dipilih, terkadang Anda membutuhkan fungsi tertentu yang belum disediakan oleh plugin mana pun. Kalau sudah begini, Anda mungkin perlu membuat plugin WordPress sendiri.<\/p><p>Nah, dalam tutorial plugin WordPress kali ini, Anda akan mempelajari langkah-langkah membuat plugin WordPress. Kami juga akan membahas tips terbaik dan standar coding pembuatan plugin yang sebaiknya Anda ikuti.<\/p><p>Selain itu, artikel ini juga akan membahas perbedaan plugin dan tema serta cara kerjanya di platform WordPress. Yuk, simak dan baca sampai akhir!<\/p><p>\n\n\n\n\n\n\n\n\n<\/p><h2 class=\"wp-block-heading\" id=\"h-persiapan-awal-untuk-membuat-plugin-wordpress\">Persiapan Awal untuk Membuat Plugin WordPress<\/h2><p>Berikut adalah beberapa hal yang perlu dipersiapkan untuk memulai cara membuat plugin WordPress:<\/p><ul class=\"wp-block-list\">\n<li>Program text editor (atau Note)<\/li>\n\n\n\n<li><a href=\"\/id\/tutorial\/cara-menggunakan-filezilla\">Akses FTP<\/a> ke akun hosting Anda<\/li>\n\n\n\n<li>Anda sudah <a href=\"\/id\/tutorial\/cara-install-wordpress\">menginstall WordPress<\/a><\/li>\n<\/ul><p>Program teks editor diperlukan untuk menulis coding plugin. Ada beberapa <a href=\"\/id\/tutorial\/html-editor-terbaik\">editor HTML<\/a> yang paling populer dan cukup mudah digunakan, termasuk <a href=\"https:\/\/notepad-plus-plus.org\/\" target=\"_blank\" rel=\"noopener\">Notepad++<\/a> dan <a href=\"https:\/\/atom.io\/\" target=\"_blank\" rel=\"noopener\">Atom<\/a>.<\/p><p>Apabila sudah menginstal program teks editor tersebut, hubungkan ke server FTP Anda untuk memulai proses memodifikasi coding. Kemudian, konfigurasikan klien FTP untuk mengupload file plugin ke website Anda. Kami merekomendasikan aplikasi FileZilla FTP karena pengaturannya lebih mudah.<\/p><p>Terakhir, pastikan Anda sudah menginstal WordPress versi terbaru yang berfungsi dengan baik. Ada beberapa cara untuk <a href=\"\/id\/tutorial\/cara-update-wordpress\">update WordPress<\/a> apabila fitur update otomatis dinonaktifkan. <a href=\"\/id\/tutorial\/cara-backup-wordpress\">Backup website WordPress<\/a> Anda lebih dulu sebelum update agar data tidak hilang.<\/p><p>Ada baiknya Anda juga sudah paham tentang PHP untuk mulai membuat plugin WordPress. Sebab, Anda nantinya harus menulis fungsi kustom dan mengaktifkan fungsi core WordPress yang ada. Atau paling tidak Anda harus sudah terbiasa dengan konvensi penamaan PHP dan penataan struktur file.<\/p><h2 class=\"wp-block-heading\" id=\"h-perbedaan-plugin-dan-tema-wordpress\">Perbedaan Plugin dan Tema WordPress<\/h2><p>Fungsionalitas WordPress bisa diubah melalui pengaturan plugin dan tema.<\/p><p>Tema WordPress memiliki file <strong>functions.php<\/strong> yang biasanya disimpan di folder <strong>\/wp-includes\/<\/strong>, yang memungkinkan Anda menambahkan kode kustom untuk fungsi baru.<\/p><p>Meskipun metode ini berfungsi optimal untuk perubahan minor, cara ini bisa dibilang kurang praktis untuk menerapkan perubahan besar yang akan diberlakukan pada seluruh website.<\/p><p>Ini karena fungsionalitas yang disimpan dalam file <strong>functions.php<\/strong> akan bergantung pada aktif atau tidaknya tema. Nantinya, kalau Anda menonaktifkan tema WordPress tersebut, perubahan yang sudah dibuat akan hilang dan bisa mengakibatkan error saat fungsi tersebut dibutuhkan.<\/p><p>Selain itu, mengupdate tema juga akan menimpa file <strong>functions.php<\/strong> sehingga Anda harus me-restore kode WordPress custom secara manual, kecuali Anda menggunakan child theme.<\/p><p>Itulah mengapa Anda perlu membuat plugin WordPress custom. Dengan membuat plugin custom, Anda bisa memodifikasi fungsi WordPress default agar sesuai dengan kebutuhan Anda.<\/p><p>Keuntungan lainnya, Anda bisa menambahkan plugin WordPress ke instalasi WordPress lainnya. Fitur yang diberikan oleh plugin tersebut akan tetap berfungsi meskipun Anda sudah mengganti tema WordPress. Update juga tidak akan overwrite fungsi yang ada, sehingga akan menghemat waktu dan tenaga.<\/p><h2 class=\"wp-block-heading\" id=\"h-apa-itu-wordpress-hooks\">Apa Itu WordPress Hooks?<\/h2><p>Plugin WordPress bisa berinteraksi dengan core code menggunakan hooks. Ada dua jenis hook WordPress, yaitu:<\/p><ul class=\"wp-block-list\">\n<li><strong>Action Hooks <\/strong>&ndash; untuk menambahkan atau mengurangi fungsi tertentu<\/li>\n\n\n\n<li><strong>Filter Hooks <\/strong>&ndash; untuk memodifikasi data yang dihasilkan dari fungsi tersebut<\/li>\n<\/ul><h3 class=\"wp-block-heading\" id=\"h-memahami-actions-dan-action-hooks\">Memahami Actions dan Action Hooks<\/h3><p>Action adalah fungsi PHP yang diaktifkan melalui action hook tertentu saat user mengunjungi halaman web WordPress. Web developer bisa menambahkan fungsinya sendiri ke daftar actions atau menghapus yang sudah ada dengan menambahkan script action hook <strong>wp_head()<\/strong> sebelum tag penutup <strong>(&lt;\/head&gt;)<\/strong> dari halaman mana pun.<\/p><p>Action hooks biasanya bersifat kontekstual, yang berarti tidak semua halaman WordPress membutuhkannya. Halaman <a href=\"https:\/\/codex.wordpress.org\/Plugin_API\/Action_Reference\" target=\"_blank\" rel=\"noopener\">WordPress Plugin Action Reference<\/a> menyediakan daftar lengkap action hooks tersebut beserta konteks pemanggilannya (call).<\/p><p id=\"h-menambahkan-fungsi-ke-action-hooks-menggunakan-add_action\"><strong>Menambahkan Fungsi ke Action Hooks Menggunakan add_action()<\/strong><\/p><p>Menambahkan fungsi ke action hook dalam file plugin memerlukan pemanggilan fungsi <strong>add_action()<\/strong> dengan setidaknya dua parameter.<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ Hook to the 'init' action, which is called after WordPress is finished loading the core code\nadd_action( 'init', 'add_Cookie' );\n\/\/ Set a cookie with the current time of day\nfunction add_Cookie() {\n setcookie(\"last_visit_time\", date(\"r\"), time()+60*60*24*30, \"\/\");\n}<\/pre><p>Parameter opsional ketiga menyatakan <strong>prioritas<\/strong> fungsi tersebut. Prioritas defaultnya adalah 10, yang menempatkan fungsi custom setelah fungsi bawaan.<\/p><p>Parameter pertama adalah nama dari <strong>action hook<\/strong> yang Anda inginkan untuk menambahkan callback, sedangkan parameter kedua berisi nama <strong>fungsi<\/strong> yang ingin Anda jalankan.<\/p><p>Parameter keempat, yang juga bersifat opsional, berisi <strong>jumlah argumen<\/strong> atau parameter yang bisa diambil oleh fungsi custom. Nilai defaultnya adalah 1.<\/p><p id=\"h-contoh-kode-plugin-untuk-menampilkan-teks-setelah-footer-di-setiap-halaman\"><strong>Contoh Kode Plugin untuk Menampilkan Teks Setelah Footer di Setiap Halaman<\/strong><\/p><p>Plugin contoh ini mengaktifkan action hook <strong>wp_footer()<\/strong> sebelum tag <strong>&lt;\/body&gt;<\/strong> penutup di setiap halaman, dan menambahkan fungsi baru bernama <strong>mfp_Add_Text()<\/strong>. Karena merupakan bagian dari plugin, fungsinya akan tetap berjalan, bahkan setelah tema diganti.<\/p><p>Simpan contoh berikut ini sebagai file PHP dan upload ke folder <strong>plugins<\/strong>.<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;?php\n\/*\nPlugin Name: Add Text To Footer\n*\/\n\/\/ Hook the 'wp_footer' action hook, add the function named 'mfp_Add_Text' to it\nadd_action(\"wp_footer\", \"mfp_Add_Text\");\n \n\/\/ Define 'mfp_Add_Text'\nfunction mfp_Add_Text()\n{\n  echo \"&lt;p style='color: black;'&gt;After the footer is loaded, my text is added!&lt;\/p&gt;\";\n}<\/pre><p>Screenshot di bawah ini menunjukkan hasilnya setelah Anda mengaktifkannya melalui panel admin WordPress:<\/p><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" width=\"800\" height=\"107\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/37\/2022\/03\/plugin-sedang-berjalan.png\/public\" alt=\"plugin sedang berjalan\" class=\"wp-image-17123\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/37\/2022\/03\/plugin-sedang-berjalan.png\/w=800,fit=scale-down 800w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/37\/2022\/03\/plugin-sedang-berjalan.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/37\/2022\/03\/plugin-sedang-berjalan.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/37\/2022\/03\/plugin-sedang-berjalan.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/><\/figure><\/div><p>\n\n\n<div><p class=\"important\">PHP akan mengevaluasi seluruh skrip sebelum menjalankannya. Agar file lebih mudah dibaca, tulis perintah <strong>add_action()<\/strong> di bagian atas file dalam urutan eksekusinya lalu definisikan fungsinya dalam urutan seperti di bawah ini.<\/p><\/div>\n\n\n\n<\/p><p id=\"h-menghapus-fungsi-dari-action-hook-menggunakan-remove_action\"><strong>Menghapus Fungsi dari Action Hook Menggunakan remove_action()<\/strong><\/p><p>Untuk menghapus sebuah action dari action hook, tulis fungsi baru <strong>remove_action()<\/strong> lalu aktifkan fungsi yang telah Anda tulis menggunakan <strong>add_action()<\/strong>.<\/p><p>Fungsi <strong>remove_action()<\/strong> juga harus berisi setidaknya dua parameter.<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ Hook the 'init' action, which is called after WordPress is finished loading the core code, add the function 'remove_My_Meta_Tags'\nadd_action( 'init', 'remove_My_Meta_Tags' );\n\/\/ Remove the 'add_My_Meta_Tags' function from the wp_head action hook\nfunction remove_My_Meta_Tags()\n{\n  remove_action( 'wp_head', 'add_My_Meta_Tags');\n}<\/pre><p>Parameter pertama adalah nama dari <strong>action hook<\/strong> yang terikat dengan fungsi, sedangkan parameter kedua berisi nama dari <strong>fungsi<\/strong> yang ingin Anda hapus.<\/p><p>Parameter opsional ketiga menyatakan <strong>prioritas<\/strong> dari fungsi asli. Ini harus identik dengan prioritas yang awalnya ditentukan saat menambahkan action ke action hook. Apabila Anda tidak menentukan prioritas dalam fungsi kustom, jangan sertakan parameter ini.<\/p><p>Pada contoh berikutnya, kami akan mencegah teks footer tambahan muncul pada setiap postingan di hari Senin.<\/p><p>Salah satu caranya adalah menggunakan fungsi PHP <strong>date()<\/strong> untuk mengecek hari apa sekarang, yang kemudian diikuti dengan tag kondisional untuk memeriksa apakah sekarang adalah hari Senin. Setelah menguraikan (parse) informasi, halaman akan menjalankan fungsi <strong>remove_action()<\/strong> di setiap postingan yang di-publish pada hari Senin.<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;?php\n \/\/ Hook the 'wp_footer' action, run the function named 'mfp_Add_Text()'\nadd_action(\"wp_footer\", \"mfp_Add_Text\");\n\/\/ Hook the 'wp_head' action, run the function named 'mfp_Remove_Text()'\nadd_action(\"wp_head\", \"mfp_Remove_Text\");\n\/\/ Define the function named 'mfp_Add_Text('), which just echoes simple text\nfunction mfp_Add_Text()\n{\n  echo \"&lt;p style='color: #FFF;'&gt;After the footer is loaded, my text is added!&lt;\/p&gt;\";\n}\n\/\/ Define the function named 'mfp_Remove_Text()' to remove our previous function from the 'wp_footer' action\nfunction mfp_Remove_Text()\n{\n  if (date(\"l\") === \"Monday\") {\n    \/\/ Target the 'wp_footer' action, remove the 'mfp_Add_Text' function from it\n    remove_action(\"wp_footer\", \"mfp_Add_Text\");\n  }\n}<\/pre><h2 class=\"wp-block-heading\" id=\"h-memahami-filter-dan-filter-hooks\">Memahami Filter dan Filter Hooks<\/h2><p>Filter adalah fungsi PHP yang diaktifkan oleh filter hook khusus yang mengubah data dari fungsi yang ada. Seperti action hooks, filter hooks juga bersifat kontekstual.<\/p><p>Daftar lengkap filter hooks dan konteks pemanggilannya tersedia di halaman <a href=\"https:\/\/codex.wordpress.org\/Plugin_API\/Filter_Reference\" target=\"_blank\" rel=\"noopener\">WordPress Plugin Filter Reference<\/a>.<\/p><p id=\"h-menambahkan-filter-menggunakan-add_filter\"><strong>Menambahkan Filter Menggunakan add_filter()<\/strong><\/p><p>Menambahkan fungsi filter ke filter hook dalam file plugin memerlukan pemanggilan fungsi <strong>add_filter()<\/strong> dengan setidaknya dua parameter.<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ Hook the 'the_content' filter hook (content of any post), run the function named 'mfp_Fix_Text_Spacing'\nadd_filter(\"the_content\", \"mfp_Fix_Text_Spacing\");\n\/\/ Automatically correct double spaces from any post\nfunction mfp_Fix_Text_Spacing($the_Post)\n{\n $the_New_Post = str_replace(\"  \", \" \", $the_Post);\n return $the_New_Post;\n}<\/pre><p>Parameter pertama adalah nama <strong>filter hook<\/strong> yang Anda inginkan untuk menambahkan callback, sedangkan parameter kedua berisi nama <strong>fungsi<\/strong> yang ingin Anda jalankan saat filter diterapkan.<\/p><p>Parameter opsional ketiga menyatakan <strong>prioritas<\/strong> fungsi tersebut. Prioritas defaultnya adalah 10, yang menempatkan fungsi kustom setelah fungsi default.<\/p><p>Parameter opsional keempat berisi <strong>jumlah argumen<\/strong> atau parameter yang bisa diambil oleh fungsi filter kustom. Nilai defaultnya adalah 1.<\/p><p id=\"h-contoh-plugin-untuk-mengubah-kutipan-posting\"><strong>Contoh Plugin untuk Mengubah Kutipan Postingan<\/strong><\/p><p>WordPress memiliki fungsi yang mengambil kutipan postingan bernama <strong>get_the_excerpt()<\/strong>. Fungsi ini juga merupakan filter hook. Menambahkan filter ini setelah mengambil kutipan akan mengubah teks sebelum website WordPress menampilkannya.<\/p><p>Contoh plugin berikut mendefinisikan fungsi filter yang mengambil kutipan sebagai satu-satunya parameter input, menambahkan beberapa teks sebelumnya, dan mengembalikan nilai baru setiap kali script memanggil fungsi <strong>get_the_excerpt()<\/strong>.<\/p><p>Karena nilai yang dihasilkan dari fungsi <strong>get_the_excerpt()<\/strong> adalah kutipan teks sebenarnya, plugin akan secara otomatis memasukkan nilai baru sebagai parameter fungsi <strong>$old_Excerpt<\/strong> saat dipanggil menggunakan <strong>add_filter()<\/strong>. Fungsi yang ditentukan plugin harus <strong>mengembalikan nilai baru<\/strong>.<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;?php\n\/*\nPlugin Name: Add Excerpt \n*\/\n\/\/ Hook the get_the_excerpt filter hook, run the function named mfp_Add_Text_To_Excerpt\nadd_filter(\"get_the_excerpt\", \"mfp_Add_Text_To_Excerpt\");\n\/\/ Take the excerpt, add some text before it, and return the new excerpt\nfunction mfp_Add_Text_To_Excerpt($old_Excerpt)\n{\n  $new_Excerpt = \"&lt;b&gt;Excerpt: &lt;\/b&gt;\" . $old_Excerpt;\n  return $new_Excerpt;\n}<\/pre><p id=\"h-menghapus-filter-menggunakan-remove_filter\"><strong>Menghapus Filter Menggunakan remove_filter()<\/strong><\/p><p>Menghapus filter jauh lebih simpel daripada menghapus action karena WordPress memungkinkan Anda mengaktifkan fungsi <strong>remove_filter()<\/strong> tanpa harus menentukan yang baru.<\/p><p>Dalam contoh berikut, kami akan menghapus teks kutipan tambahan kalau hari ini adalah hari Kamis. Kami akan menggunakan fungsi <strong>remove_filter()<\/strong> dengan setidaknya dua parameter.<\/p><p>Parameter pertama harus berisi filter hook yang akan dikaitkan dengan fungsi. Parameter kedua harus berupa nama filter yang ingin Anda hapus. Tambahkan parameter prioritas apabila Anda menentukannya saat membuat fungsi tersebut.<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/ Hook the get_the_excerpt filter hook, run the function named mfp_Add_Text_To_Excerpt\nadd_filter(\"get_the_excerpt\", \"mfp_Add_Text_To_Excerpt\");\n\/\/ If today is a Thursday, remove the filter from the_excerpt()\nif (date(\"l\") === \"Thursday\") {\n  remove_filter(\"get_the_excerpt\", \"mfp_Add_Text_To_Excerpt\");\n}\n\/\/ Take the excerpt, add some text before it, and return the new excerpt\nfunction mfp_Add_Text_To_Excerpt($old_Excerpt)\n{\n  $new_Excerpt = \"&lt;b&gt;Excerpt: &lt;\/b&gt;\" . $old_Excerpt;\n  return $new_Excerpt;\n}<\/pre><p>Sekarang, setelah Anda memahami dasar-dasar hook dan filter, mari kita mulai cara membuat plugin WordPress sederhana yang akan menambahkan halaman baru dengan link di control panel admin.<\/p><p>\n\n\n\n<div><p class=\"important\">Gunakan <a href=\"\/id\/tutorial\/wordpress-staging-environment\">WordPress staging<\/a> untuk menguji plugin baru dan mencegah error yang bisa menyebabkan downtime. Ada dua cara untuk memulainya, yaitu secara manual atau dengan plugin seperti <a href=\"https:\/\/wordpress.org\/plugins\/wp-staging\/\" target=\"_blank\" rel=\"noopener\">WP Staging<\/a>. Atau, Anda juga bisa menginstall WordPress secara lokal di komputer.<\/p><\/div>\n\n\n\n<\/p><h2 class=\"wp-block-heading\" id=\"h-langkah-1-menyimpan-plugin\">Langkah 1 &ndash; Menyimpan Plugin<\/h2><p>Langkah-langkah membuat plugin WordPress yang pertama adalah membuat folder untuk filenya. Nama folder harus jelas dan deskriptif. Cek nama folder plugin lainnya di <strong>\/wp-content\/plugins\/<\/strong> untuk memastikan bahwa nama yang akan Anda pakai belum pernah digunakan.<\/p><p>Gunakan klien FTP untuk terhubung ke akun hosting Anda agar bisa memulai proses mengupload file. Buka <strong>wp-content -&gt; plugins<\/strong> dari direktori WordPress utama. Kemudian, buat folder baru bernama <strong>my-first-plugin<\/strong> di folder plugins.<\/p><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" width=\"1365\" height=\"384\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/37\/2022\/03\/klien-FTP.png\/public\" alt=\"klien FTP\" class=\"wp-image-17121\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/37\/2022\/03\/klien-FTP.png\/w=1365,fit=scale-down 1365w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/37\/2022\/03\/klien-FTP.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/37\/2022\/03\/klien-FTP.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/37\/2022\/03\/klien-FTP.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/37\/2022\/03\/klien-FTP.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1365px) 100vw, 1365px\" \/><\/figure><\/div><p>Jangan lupa menerapkan prosedur manajemen file selama development WordPress untuk mempermudah proses selanjutnya. Bagi file menjadi beberapa subfolder menurut fungsinya.<\/p><p>Misalnya, simpan file CSS, PHP, dan JavaScript di folder terpisah. Nantinya, Anda pun bisa lebih mudah menemukan file yang dicari saat mengembangkan plugin, karena semuanya sudah memiliki direktori khusus.<\/p><h2 class=\"wp-block-heading\" id=\"h-langkah-2-membuat-file-pertama\">Langkah 2 &ndash; Membuat File Pertama<\/h2><p>File plugin utama akan berisi informasi yang dibutuhkan WordPress untuk menampilkan plugin Anda pada daftar plugin agar nanti Anda bisa mengaktifkannya.<\/p><p>Buat file PHP baru bernama <strong>my-first-plugin.php<\/strong> di folder yang Anda buat tadi. File plugin utama ini akan berisi header comment dengan informasi tambahan untuk dibaca atau ditampilkan WordPress.<\/p><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" width=\"1365\" height=\"467\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/37\/2022\/03\/tampilan-klien-FTP.png\/public\" alt=\"tampilan klien FTP\" class=\"wp-image-17124\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/37\/2022\/03\/tampilan-klien-FTP.png\/w=1365,fit=scale-down 1365w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/37\/2022\/03\/tampilan-klien-FTP.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/37\/2022\/03\/tampilan-klien-FTP.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/37\/2022\/03\/tampilan-klien-FTP.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/37\/2022\/03\/tampilan-klien-FTP.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1365px) 100vw, 1365px\" \/><\/figure><\/div><p>Kemudian, klik kanan file tersebut dan pilih<strong> View\/Edit<\/strong> untuk menambahkan kode berikut menggunakan editor HTML:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;?php\n\/*\nPlugin Name: My First Plugin\nDescription: This is my first plugin! It makes a new admin menu link!\nAuthor: Your Name\n*\/<\/pre><p>Silakan baca <a href=\"https:\/\/www.php.net\/basic-syntax.instruction-separation\" target=\"_blank\" rel=\"noopener\">panduan PHP<\/a> ini untuk memahami mengapa tag penutup <strong>?&gt;<\/strong> tidak diperlukan di sini.<\/p><p>Simpan file tersebut. Kemudian, buka bagian <strong>Plugins<\/strong> di dashboard WordPress Anda. Kalau WordPress bisa membaca file baru tersebut dengan benar, Anda akan melihat <strong>My First Plugin<\/strong> ada dalam daftar:<\/p><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" width=\"1365\" height=\"634\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/37\/2022\/03\/plugin-dashboard-WordPress.png\/public\" alt=\"plugin dashboard WordPress\" class=\"wp-image-17122\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/37\/2022\/03\/plugin-dashboard-WordPress.png\/w=1365,fit=scale-down 1365w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/37\/2022\/03\/plugin-dashboard-WordPress.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/37\/2022\/03\/plugin-dashboard-WordPress.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/37\/2022\/03\/plugin-dashboard-WordPress.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/37\/2022\/03\/plugin-dashboard-WordPress.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1365px) 100vw, 1365px\" \/><\/figure><\/div><h2 class=\"wp-block-heading\" id=\"h-langkah-3-menulis-fungsi-plugin\">Langkah 3 &ndash; Menulis Fungsi Plugin<\/h2><p>Sebelum mulai menulis fungsi untuk plugin yang akan Anda buat, sebaiknya berikan awalan nama yang unik untuk semua file, fungsi, dan variabelnya untuk menghindari masalah dengan plugin lain. Misalnya, dalam contoh ini kami menggunakan awalan <strong>mfp<\/strong>, singkatan dari <strong>My First Plugin<\/strong>.<\/p><p>Buat folder baru bernama <strong>Includes<\/strong> di direktori utama plugin. Folder ini akan digunakan untuk menyimpan file pendukung yang nantinya dibutuhkan oleh file utama. Di folder ini, buat file PHP dan beri nama <strong>mfp-functions.php<\/strong>. Berikan tag pembuka<strong> &lt;?php<\/strong> pada baris pertama.<\/p><p>File baru ini akan berisi semua fungsi plugin Anda.<\/p><p>Kemudian, sertakan <strong>mfp-functions.php<\/strong> di file plugin utama agar file plugin lainnya bisa menggunakan fungsi yang ditentukannya. Gunakan <strong>require_once<\/strong> untuk memastikan plugin hanya bekerja apabila file fungsinya (function) ada.<\/p><p>Edit <strong>my-first-plugin.php<\/strong> seperti yang ditunjukkan di bawah ini. Kemudian, simpan dan upload file sekali lagi dengan menimpa (overwrite) file versi sebelumnya jiak diminta.<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;?php\n\/*\nPlugin Name: My First Plugin\nDescription: This is my first plugin! It makes a new admin menu link!\nAuthor: Your Name\n*\/\n\/\/ Include mfp-functions.php, use require_once to stop the script if mfp-functions.php is not found\nrequire_once plugin_dir_path(__FILE__) . 'includes\/mfp-functions.php';<\/pre><p>Fungsi WordPress <strong>plugin_dir_path(__FILE__) <\/strong>memungkinkan Anda menyertakan file dari folder plugin, yang akan memberikan path (jalur) lengkap ke direktori yang menyimpan plugin baru.<\/p><p>Sekarang, kembali ke file <strong>mfp-functions.php<\/strong> di direktori <strong>Includes<\/strong>. Karena plugin yang kami buat ini akan menambahkan top-level link baru ke menu navigasi control panel admin, kami akan menggunakan fungsi kustom bernama <strong>mfp_Add_My_Admin_Link()<\/strong>. Tambahkan blok kode di bawah ini ke file <strong>mfp-functions.php<\/strong>:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;?php\n\/*\n * Add my new menu to the Admin Control Panel\n *\/\n\/\/ Hook the 'admin_menu' action hook, run the function named 'mfp_Add_My_Admin_Link()'\nadd_action( 'admin_menu', 'mfp_Add_My_Admin_Link' );\n\/\/ Add a new top level menu link to the ACP\nfunction mfp_Add_My_Admin_Link()\n{\n      add_menu_page(\n        'My First Page', \/\/ Title of the page\n        'My First Plugin', \/\/ Text to show on the menu link\n        'manage_options', \/\/ Capability requirement to see the link\n        'includes\/mfp-first-acp-page.php' \/\/ The 'slug' - file to display when clicking the link\n    );\n}<\/pre><p>\n\n\n\n<div><p class=\"important\">Masukkan fungsi serupa di satu area dan berikan deskripsi di atas setiap fungsi tersebut menggunakan komentar multi-line untuk memudahkan update dan debugging plugin nantinya.<\/p><\/div>\n\n\n\n<\/p><p><strong>mfp_Add_My_Admin_Link()<\/strong> menggunakan fungsi bawaan WordPress <strong>add_menu_page()<\/strong> dengan setidaknya empat parameter dalam urutan berikut:<\/p><ul class=\"wp-block-list\">\n<li><strong>Page title<\/strong> (judul halaman) &ndash; nama halaman yang ditampilkan pada tab browser.<\/li>\n\n\n\n<li><strong>Menu title<\/strong> (judul menu) &ndash; teks yang digunakan untuk item menu. Pada contoh kami, judul menu adalah nama plugin.<\/li>\n\n\n\n<li><strong>Capability<\/strong> (kemampuan) &ndash; kemampuan user untuk melihat menu plugin. Di sini, hanya user dengan kemampuan <strong>manage_options<\/strong> yang bisa mengakses halaman tertaut.<\/li>\n\n\n\n<li><strong>Menu slug<\/strong> &ndash; file yang digunakan untuk menampilkan halaman sebenarnya. Kami akan membuat file yang ditautkan ke <strong>mfp-first-acp-page.php<\/strong> dalam folder <strong>Includes<\/strong>.<\/li>\n\n\n\n<li><strong>Fungsi (opsional)<\/strong> &ndash; fungsi yang menampilkan hasil konten halaman.<\/li>\n<\/ul><p>Menyertakan fungsi custom menggunakan<strong> add_action()<\/strong> memungkinkan plugin memanggil action hook dalam situasi tertentu. Menambahkan <strong>admin_menu<\/strong> sebagai parameter pertama akan memanggil fungsi tersebut ketika user mengakses menu admin.<\/p><p>Sementara itu, <strong>mfp_Add_My_Admin_Link<\/strong> adalah fungsi yang akan dijalankan karena ditentukan sebagai parameter kedua.<\/p><p>Terakhir, upload file plugin <strong>mfp-functions.php<\/strong> ke folder <strong>Includes<\/strong>.<\/p><h2 class=\"wp-block-heading\" id=\"h-langkah-4-membuat-halaman-admin-plugin\">Langkah 4 &ndash; Membuat Halaman Admin Plugin<\/h2><p>Setelah menentukan fungsi plugin, sekarang saatnya membuat halaman yang akan menjadi tujuan saat tombol menu diklik. Buat file PHP baru bernama <strong>mfp-first-acp-page.php<\/strong> di subfolder <strong>Includes<\/strong> dan tambahkan kode berikut ke dalamnya:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;div class=\"wrap\"&gt;\n  &lt;h1&gt;Hello!&lt;\/h1&gt;\n  &lt;p&gt;This is my plugin's first page&lt;\/p&gt;\n&lt;\/div&gt;<\/pre><p>Saat membuat halaman admin, WordPress merekomendasikan untuk meng-enclose HTML Anda dengan tag <strong>&lt;div&gt;<\/strong> dan memberinya kelas &ldquo;<strong>wrap<\/strong>&rdquo; untuk memastikan semua konten ditampilkan di tempat yang benar. Selain itu, langkah ini juga bisa membantu mengurangi tampilan kode yang terlalu berantakan.<\/p><p>Terakhir, akses bagian <strong>Plugins<\/strong> di dashboard WordPress Anda dan aktifkan plugin baru. Kalau berhasil, link panel admin plugin pertama Anda akan muncul di bagian bawah menu navigasi.<\/p><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" width=\"1349\" height=\"532\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/37\/2022\/03\/dashboard-WordPress.png\/public\" alt=\"dashboard WordPress\" class=\"wp-image-17119\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/37\/2022\/03\/dashboard-WordPress.png\/w=1349,fit=scale-down 1349w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/37\/2022\/03\/dashboard-WordPress.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/37\/2022\/03\/dashboard-WordPress.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/37\/2022\/03\/dashboard-WordPress.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/37\/2022\/03\/dashboard-WordPress.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1349px) 100vw, 1349px\" \/><\/figure><\/div><p>Selamat! Anda sudah berhasil membuat plugin WordPress pertama Anda!<\/p><p>Kalau membuat plugin di staging site, Anda harus <a href=\"\/id\/tutorial\/cara-install-plugin-wordpress\">menginstal plugin<\/a> di website yang sudah online. Ikuti langkah-langkah berikut:<\/p><ol class=\"wp-block-list\">\n<li>Di FileZilla, klik kanan folder <strong>my-new-plugin<\/strong> dan pilih <strong>Download<\/strong>. Kemudian, kompresi file menjadi file ZIP.<\/li>\n<\/ol><figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1365\" height=\"420\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/37\/2022\/03\/download-FileZilla.png\/public\" alt=\"download FileZilla\" class=\"wp-image-17120\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/37\/2022\/03\/download-FileZilla.png\/w=1365,fit=scale-down 1365w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/37\/2022\/03\/download-FileZilla.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/37\/2022\/03\/download-FileZilla.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/37\/2022\/03\/download-FileZilla.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/37\/2022\/03\/download-FileZilla.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1365px) 100vw, 1365px\" \/><\/figure><ol class=\"wp-block-list\" start=\"2\">\n<li>Akses menu<strong> Plugins<\/strong> dari dashboard WordPress Anda. Kemudian, klik <strong>Add New<\/strong>.<\/li>\n\n\n\n<li>Klik <strong>Upload Plugin<\/strong> dan pilih file ZIP plugin Anda.<\/li>\n<\/ol><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" width=\"1350\" height=\"389\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/37\/2022\/03\/upload-plugin-WordPress.png\/public\" alt=\"upload plugin WordPress\" class=\"wp-image-17125\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/37\/2022\/03\/upload-plugin-WordPress.png\/w=1350,fit=scale-down 1350w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/37\/2022\/03\/upload-plugin-WordPress.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/37\/2022\/03\/upload-plugin-WordPress.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/37\/2022\/03\/upload-plugin-WordPress.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/37\/2022\/03\/upload-plugin-WordPress.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1350px) 100vw, 1350px\" \/><\/figure><\/div><ol class=\"wp-block-list\" start=\"4\">\n<li>Pilih <strong>Install Now<\/strong> untuk memulai proses instalasi.<\/li>\n<\/ol><p>\n\n\n\n<div class=\"protip\">\n                    <h4 class=\"title\">Tips<\/h4>\n                    <p>Ingin tahu bahasa pemrograman apa saja yang digunakan untuk membuat plugin WordPress? Lihat panduannya di bawah ini:<\/p><p><a href=\"\/id\/tutorial\/apa-itu-html\">Apa Itu HTML<\/a><\/p><p><a href=\"\/id\/tutorial\/apa-itu-css\">Apa Itu CSS<\/a><\/p><p><a href=\"\/id\/tutorial\/apa-itu-javascript\">Apa Itu JavaScript<\/a><\/p><p><\/p>\n                <\/div>\n\n\n\n<\/p><h2 class=\"wp-block-heading\" id=\"h-tips-dan-standar-terbaik-saat-membuat-plugin-custom\">Tips dan Standar Terbaik Saat Membuat Plugin Custom<\/h2><p>Seiring dengan bertambahnya kebutuhan website, Anda harus mengubah lagi kode plugin untuk menerapkan update dan patch keamanan.<\/p><p>Nah, untuk hal ini, sebaiknya selalu ikuti tips terbaik pengembangan plugin sejak awal. Dengan demikian, keseluruhan prosesnya akan menjadi lebih mudah bagi Anda dan web developer yang mungkin bekerja sama dengan Anda nantinya.<\/p><p>Selain itu, lihat contoh <a href=\"\/id\/tutorial\/plugin-wordpress-terbaik\">plugin WordPress terbaik<\/a> untuk mendapatkan inspirasi. Lihat kode sumbernya, cara mereka mengelola folder, dan praktik lainnya yang bisa diterapkan saat membuat plugin WordPress sendiri.<\/p><p>Berikut adalah tips pengembangan dan coding plugin terbaik untuk membantu Anda memulai cara membuat plugin WordPress pertama Anda:<\/p><ul class=\"wp-block-list\">\n<li><strong>Kembangkan dan uji plugin WP di situs staging<\/strong>. Dengan cara ini, tidak akan ada risiko website akan rusak apabila plugin memiliki coding yang salah.<\/li>\n\n\n\n<li><strong>Buat struktur folder yang logis<\/strong>. Buatlah subfolder untuk setiap fungsi dan bagi kode menjadi file terpisah berdasarkan tujuan atau jenis bahasa pemrogramannya untuk menghindari kekacauan.<\/li>\n\n\n\n<li><strong>Beri nama setiap file, folder, dan elemen dengan cermat<\/strong>. Gunakan awalan yang unik sehingga tidak bermasalah dengan nama file plugin lain atau core WordPress.<\/li>\n\n\n\n<li><strong>Tambahkan komentar untuk melabeli setiap fungsi<\/strong>. Anda dan developer lain nantinya bisa memahami coding dengan lebih baik saat upadte atau debugging.<\/li>\n\n\n\n<li><strong>Buat dokumentasinya<\/strong>. Praktik ini sangat bermanfaat kalau Anda membuat plugin dengan fungsionalitas yang kompleks untuk banyak pengguna.<\/li>\n\n\n\n<li><strong>Gunakan software version control untuk memantau perubahan pada coding<\/strong>. Dengan mengetahui siapa yang menambahkan kode tertentu, Anda bisa mencegah masalah di antara setiap update dan meminimalkan bug.<\/li>\n\n\n\n<li><strong>Lihat standar coding dengan bahasa tertentu di <\/strong><a href=\"https:\/\/make.wordpress.org\/core\/handbook\/best-practices\/coding-standards\/\" target=\"_blank\" rel=\"noopener\">Codex WordPress<\/a>. Pastikan untuk mengikutinya saat mengerjakan sebuah proyek bersama-sama.<\/li>\n\n\n\n<li><strong>Aktifkan <\/strong><a href=\"\/id\/tutorial\/wp-debug-wordpress\/\">WP_DEBUG<\/a> <strong>atau gunakan tool debugging saat mengembangkan plugin<\/strong>. Langkah ini akan memudahkan Anda menemukan bug dan mempercepat proses pembuatan plugin secara keseluruhan.<\/li>\n<\/ul><p>\n\n\n    <div class=\"mb-50 mt-50 mt-70-xxl\">\n        <div class=\"banner__bg \">\n            <span class=\"h3 font-weight-bold banner__header\">Optimalkan website WordPress dengan web hosting khusus WordPress<\/span>\n                                <a href=\"\/wordpress-hosting\" class=\"new-h-button-primary button text-white mt-30 float-right banner__btn\">Coba WordPress Hosting<\/a>\n                            <\/div>\n    <\/div>\n\n\n\n\n\n<\/p><h2 class=\"wp-block-heading\" id=\"h-kesimpulan\">Kesimpulan<\/h2><p>Membuat plugin custom di <a href=\"\/id\/tutorial\/apa-itu-wordpress\">WordPress adalah<\/a> cara terbaik untuk menambahkan fungsi tertentu yang saat ini belum disediakan oleh plugin mana pun. Anda bisa membuat plugin sederhana yang memberikan perubahan kecil, atau plugin kompleks yang mengubah seluruh website.<\/p><p>Singkatnya, berikut cara membuat plugin WordPress sendiri:<\/p><ol class=\"wp-block-list\">\n<li>Buat folder untuk menyimpan file plugin.<\/li>\n\n\n\n<li>Buat file utama untuk plugin Anda.<\/li>\n\n\n\n<li>Tambahkan kode ke beberapa file untuk fungsi plugin.<\/li>\n\n\n\n<li>Buat halaman admin plugin.<\/li>\n<\/ol><p>Memang, butuh waktu untuk bisa ahli dalam membuat plugin WordPress. Tapi dengan latihan yang cukup, Anda bisa membuat plugin sendiri dan menyediakannya agar bisa didownload di direktori plugin WordPress, atau bahkan menjualnya di marketplace.<\/p><p>Semoga artikel ini membantu Anda memahami cara membuat plugin WordPress. Kalau masih memiliki pertanyaan atau komentar, jangan ragu untuk menyampaikannya pada kolom komentar di bawah ini, ya.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>WordPress memiliki beragam plugin yang bisa menambahkan banyak sekali fungsionalitas kustom. Selain itu, plugin juga bisa menambahkan fitur baru ke website WordPress Anda tanpa mengharuskan Anda mengoprek coding intinya. Meskipun ada banyak plugin gratis dan premium yang bisa dipilih, terkadang Anda membutuhkan fungsi tertentu yang belum disediakan oleh plugin mana pun. Kalau sudah begini, Anda [&#8230;]<\/p>\n<p><a class=\"btn btn-secondary understrap-read-more-link\" href=\"\/id\/tutorial\/membuat-plugin-wordpress\">Read More&#8230;<\/a><\/p>\n","protected":false},"author":55,"featured_media":17130,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"rank_math_title":"Membuat Plugin WordPress Sendiri dengan Mudah","rank_math_description":"Ingin menambahkan fitur baru di website WordPress? Anda bisa memulai cara membuat plugin WordPress sendiri! Yuk, baca caranya di sini!","rank_math_focus_keyword":"membuat plugin wordpress, cara membuat plugin wordpress, cara membuat plugin wordpress sendiri","footnotes":""},"categories":[4859],"tags":[7720,7719,7430,7718,4860],"class_list":["post-5561","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-wordpress","tag-fungsi-plugin","tag-fungsi-wordpress","tag-plugin","tag-plugin-wordpress","tag-wordpress"],"hreflangs":[{"locale":"en-US","link":"https:\/\/www.hostinger.com\/tutorials\/how-to-create-wordpress-plugin","default":0},{"locale":"pt-BR","link":"https:\/\/www.hostinger.com\/br\/tutoriais\/criar-plugin-wordpress","default":0},{"locale":"fr-FR","link":"https:\/\/www.hostinger.com\/fr\/tutoriels\/creer-un-plugin-wordpress","default":0},{"locale":"es-ES","link":"https:\/\/www.hostinger.com\/es\/tutoriales\/tutorial-wordpress-plugins-crear-plugin-wordpress","default":0},{"locale":"id-ID","link":"https:\/\/www.hostinger.com\/id\/tutorial\/membuat-plugin-wordpress","default":0},{"locale":"de-DE","link":"https:\/\/www.hostinger.com\/de\/tutorials\/wordpress-plugin-erstellen","default":0},{"locale":"en-UK","link":"https:\/\/www.hostinger.com\/uk\/tutorials\/how-to-create-wordpress-plugin","default":0},{"locale":"en-MY","link":"https:\/\/www.hostinger.com\/my\/tutorials\/how-to-create-wordpress-plugin","default":0},{"locale":"en-PH","link":"https:\/\/www.hostinger.com\/ph\/tutorials\/how-to-create-wordpress-plugin","default":0},{"locale":"es-MX","link":"https:\/\/www.hostinger.com\/mx\/tutoriales\/joomla-vs-wordpress-cms-utilizar-4","default":0},{"locale":"es-CO","link":"https:\/\/www.hostinger.com\/co\/tutoriales\/joomla-vs-wordpress-cms-utilizar-4","default":0},{"locale":"es-AR","link":"https:\/\/www.hostinger.com\/ar\/tutoriales\/tutorial-wordpress-plugins-crear-plugin-wordpress","default":0},{"locale":"pt-PT","link":"https:\/\/www.hostinger.com\/pt\/tutoriais\/criar-plugin-wordpress","default":0},{"locale":"en-IN","link":"https:\/\/www.hostinger.com\/in\/tutorials\/how-to-create-wordpress-plugin","default":0},{"locale":"en-CA","link":"https:\/\/www.hostinger.com\/ca\/tutorials\/how-to-create-wordpress-plugin","default":0},{"locale":"en-AU","link":"https:\/\/www.hostinger.com\/au\/tutorials\/how-to-create-wordpress-plugin","default":0},{"locale":"en-NG","link":"https:\/\/www.hostinger.com\/ng\/tutorials\/how-to-create-wordpress-plugin","default":0}],"_links":{"self":[{"href":"https:\/\/www.hostinger.com\/id\/tutorial\/wp-json\/wp\/v2\/posts\/5561","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hostinger.com\/id\/tutorial\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hostinger.com\/id\/tutorial\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/id\/tutorial\/wp-json\/wp\/v2\/users\/55"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/id\/tutorial\/wp-json\/wp\/v2\/comments?post=5561"}],"version-history":[{"count":12,"href":"https:\/\/www.hostinger.com\/id\/tutorial\/wp-json\/wp\/v2\/posts\/5561\/revisions"}],"predecessor-version":[{"id":28913,"href":"https:\/\/www.hostinger.com\/id\/tutorial\/wp-json\/wp\/v2\/posts\/5561\/revisions\/28913"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/id\/tutorial\/wp-json\/wp\/v2\/media\/17130"}],"wp:attachment":[{"href":"https:\/\/www.hostinger.com\/id\/tutorial\/wp-json\/wp\/v2\/media?parent=5561"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hostinger.com\/id\/tutorial\/wp-json\/wp\/v2\/categories?post=5561"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hostinger.com\/id\/tutorial\/wp-json\/wp\/v2\/tags?post=5561"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}