Table of contents
1. Pilih nama Plugin yang unik dan Mudah diingat
2. Gunakan nama folder file yang unik
3. Pahami dasar-dasar penulisan nama variable, function pada PHP
4. Hindari penamaan yang sama
Solusi dan Tips
Gunakan prefix
Lakukan pengecekan diawal
Gunakan Metode Object Oriented Programming dan NamaSpacing
5. Management File yang Mudah
6. Gunakan Conditional
7. Sanitize First, Escape letter
Prinsip Keamanan yang harus dijaga

Best Practice - Pembuatan WordPress Plugin

Agar menjaga kualitas dan kemananan WordPress Plugin, kamu perlu melakukan hal-hal ini.

Hadie Danker
2 bulan yang lalu
Web Development
Best Practice - Pembuatan WordPress Plugin
Table of contents
1. Pilih nama Plugin yang unik dan Mudah diingat
2. Gunakan nama folder file yang unik
3. Pahami dasar-dasar penulisan nama variable, function pada PHP
4. Hindari penamaan yang sama
Solusi dan Tips
Gunakan prefix
Lakukan pengecekan diawal
Gunakan Metode Object Oriented Programming dan NamaSpacing
5. Management File yang Mudah
6. Gunakan Conditional
7. Sanitize First, Escape letter
Prinsip Keamanan yang harus dijaga

Berikut beberapa best practive yang bisa Anda gunakan dalam membangun sebuah WordPress Plugin.

1. Pilih nama Plugin yang unik dan Mudah diingat

Ini hanya jika Anda ingin merilis plugin WordPress yang Anda buat ke publik.

Tujuanya adalah agar orang mudah mengingat dan memahami secara langsung ketika menyebut namanya.

2. Gunakan nama folder file yang unik

Agar nanti saat di install tidak bentrok dengan plugin lainya. Misalnya jangan gunakan nama yang sama dengan seo karena plugin dengan url tersebut sudah ada di direktori WordPress.

Untuk mengeceknya, Anda bisa buka link ini

1
https://wordpress.org/plugins/seo/[folder-plugin-mu]

ganti [folder-plugin-mu] dengan nama folder plugin yang ingin kamu buat.

Jika hasilnya adalah halaman pencarian dari wordpress plugin directory. maka folder tersebut bisa kamu gunakan.

Tips Gunakan prefix atau sufix untuk nama folder. Contoh

  • dankedev-seo
  • seo-by-dankedev
  • dan lain-lain

3. Pahami dasar-dasar penulisan nama variable, function pada PHP

Anda harus dan wajib paham ini, meskipun mudah tapi terkadang bagi pemula sering terlewatkan. Misalnya yang wajib Anda lakukan terkait variable dan nama function

  • Tidak boleh ada spasi dan simbol kecuali under dash (_), dan juga tidak boleh diawali angka

    • ❌ $setting-umum
    • ❌ function register$include-script(){}
    • ✅ $setting_umum
    • ✅ function register_include_script(){}
  • Ketika anda membuka, pastikan Anda menutupnya, misal

    • $variable = 'seo' // kurang titik koma ;
    • $variable = 'seo ; // kurang penutup string '
    • $variable = array(... // kurang tutup kurung )
    • dll

Demikian juga dengan standard standard penulisan php lainy.

4. Hindari penamaan yang sama

Ketika plugin Anda aktif, secara otomatis semua kode yang Anda buat tadi akan di proses oleh WordPress bersamaan dengan dengan kode dari Core WordPress, Theme, atau plugin lain nya yang terinstall dalam web tersebut.

Solusi dan Tips

Gunakan prefix

Tambahkan awalan (prefix) disetiap function khususnya, dan juga global variable, agar tidak terjadi bentrok.

contoh

php
1
/**
2
Tambahkan dankedev_ sebagai prefix function (bebas sesuai kehendak Anda)
3
**/
4
dankedev_get_seo_title(){
5
//kode lainya disini
6
}

Lakukan pengecekan diawal

PHP menyediakan banyak metode pengecekan, baik untuk varibale, nama function atau class atau konstanta. Misalnya

Contoh

php
1
// cek keberadaan apakah sebuah key didefinisikan di dalam array
2
3
$args = isset($options['some_key']) ? $options['some_key']:'';
4
5
// cek apakah functions sudah ada atau belum
6
7
if(!function_exists('nama_function_yang_akan_dibuat')){
8
function nama_function_yang_akan_dibuat(){
9
// kode lainya disini
10
}
11
}
12
13
// Cek apakah nama class sudah ada atau belum
14
if ( ! class_exists( 'NamaClass' ) ) {
15
class NamaClass{
16
// kode lainya disini
17
}
18
}

Gunakan Metode Object Oriented Programming dan NamaSpacing

Salah satu yang mudah diterapkan adalah menggunakan class. Dan gunakan namespace untuk membuatnya lebih unik.

Contoh

php
1
namespace Dankedev;
2
3
class Plugin{
4
protected static $variable;
5
6
public static function init(){
7
return self::$variable;
8
}
9
}
10
11
12
//Bisa digunakan dengan cara
13
$init = \Dankedev\Plugin::init();

5. Management File yang Mudah

Jika plugin yang Anda buat nantinya memerlukan banyak file, misal file css, html, javascript, pihak ketika atau lainya. Maka menyusun struktur yang baik sangat-sangat diperlukan.

Gunanya adalah agar kita nanti tidak bingung saat proses development.

Pisahkan file-file sejenis baik secara kegunaan ataupun berdasarkan ekstensi.

Berikut contoh struktur file yang kami sarankan

/nama-plugin
    nama-plugin.php
    uninstall.php
    /assets
        /admin
            /css
                /dashboard.css
                /...css
            /js
                /dashboard.js
                /chart.js
                /...js
        /public
            /css
                /my-app.css
                /...css
            /js
                /my-app.js
                /...js
            /images
                /logo.png
                /...jpg
    /includes/
        helper.php
        format.php
    /languages
    /vendor

Yang demikian hanya contoh saja, prakteknya terserah Anda yang tentunya seuai yang mudah bagi Anda.

6. Gunakan Conditional

Ini juga akan sangat membantu ketika Anda memiliki file yang banyak, namun penggunaanya berbeda-beda. Contoh ada function tertentu yang hanya akan digunakan di admin dan ada yang untuk user umum. Maka bisa gunakan metode ini:

php
1
if(is_admin()){
2
require_once __DIR__ . '/admin/plugin-name-admin.php';
3
}
4
5
//hanya untuk user yang login
6
if(is_user_logged_in()){
7
require_once __DIR__ . '/user/profile-function.php';
8
9
}
10
11
require_once __DIR__ . '/admin/function-umum.php';

7. Sanitize First, Escape letter

Lakukan sanitize setiap kali anda melakukan post atau request Contoh

php
1
$id = isset($_POST['id']) ? sanitize_text_field($_POST['id']) : null;

Prinsip Keamanan yang harus dijaga

  1. Asas tidak percaya terhadap apapun yang menjadi input dari pengguna
  2. Lakukan escape selama memungkinkan
  3. Lakukan escape apapun yang berasal dari atau menuju ke "untrusted sources" misalnya database, user form, Rest API dll.
  4. Jangan berasumsi apapun
  5. Lakukan "reject" jika mencurigakan.

Beberapa function escape yang bisa digunakan

WordPress