Ikhtisar & Fitur

MadOptions — Reusable WordPress Options Panel (OOP)

MadOptions adalah framework mandiri dan reusable untuk membangun Options Panel WordPress berbasis Object-Oriented Programming (OOP).

Framework ini dirancang agar deklarasi field panel admin dapat dipakai ulang lintas tema maupun plugin dengan struktur data yang konsisten, bersih, dan modern.


Pola Penyimpanan Data

MadOptions mengadopsi pola penyimpanan terpusat yang hemat query:

  • Seluruh nilai opsi disimpan sebagai satu kesatuan array ke dalam satu baris data di tabel wp_options.
  • Hal ini mencegah penumpukan baris individual (database bloat) di database WordPress.
  • Pengambilan data di sisi front-end cukup menggunakan:
PHP
  $opts = get_option('option_name', []);
  

Fitur Utama

  • Arsitektur OOP Bersih & Modular: Mudah diinisialisasi dan diekstensikan tanpa kode spaghetti.
  • 7 Tipe Field Bawaan:
  • text — Input teks satu baris.
  • textarea — Input teks multi-baris.
  • color — Pemilih warna interaktif (WordPress Color Picker).
  • image — Pengunggah gambar terintegrasi dengan WordPress Media Library.
  • select — Dropdown statis, dinamis, maupun ber-divider (group header).
  • switch — Toggle on/off modern (1 atau 0).
  • typography — Pengaturan font family, size, line-height, weight, dan color.
  • Field Dependencies (depends_on): Menyembunyikan/menampilkan field secara otomatis berdasarkan nilai field lain tanpa reload halaman.
  • Select dengan Divider: Mendukung pengelompokan opsi secara visual menggunakan baris header non-selectable.
  • Filter Font Terbuka (madoptionsfontoptions): Daftar font typography bersifat 100% pluggable melalui WordPress filter.
  • Aset Terisolasi: File CSS dan JavaScript panel admin hanya dimuat pada halaman pengaturan yang bersangkutan.
  • Zero-Dependency: Cukup salin folder madoptions/ ke proyek WordPress apa pun.

Struktur Folder

TEXT
madoptions/
├── madoptions.php          ← Core class (wajib di-include)
├── README.md               ← Dokumentasi asli
└── assets/
    ├── css/
    │   └── madoptions.css  ← Tampilan UI panel admin modern
    └── js/
        └── madoptions.js   ← Logika tabs, color picker, media uploader, dependencies

Instalasi & Integrasi

Letakkan direktori madoptions/ di dalam folder tema atau plugin Anda, lalu muat file utamanya:

PHP
// Di functions.php tema:
require_once get_template_directory() . '/madoptions/madoptions.php';

// Atau di file utama plugin:
// require_once plugin_dir_path( __FILE__ ) . 'madoptions/madoptions.php';