Ikhtisar Chapter 22: Plugin Development (PHP)
Apa yang Dipelajari?
Membangun plugin WordPress dari nol menggunakan PHP — dari struktur file, Settings API, fitur hitung kata, sistem terjemahan, hingga plugin filter kata dengan custom admin menu.
Poin Utama
1. Struktur Plugin
- Folder di
wp-content/plugins/+ file PHP utama dengan comment header wajib (Plugin Name,Description,Text Domain, dll.) - Baris keamanan:
defined('ABSPATH') or die(...)untuk cegah akses langsung - Gunakan PHP class agar nama fungsi tidak bentrok dengan plugin lain
2. Settings API — 3 Fungsi Utama
| Fungsi | Kegunaan |
|---|---|
register_setting() | Daftarkan option ke database + sanitize callback |
add_settings_section() | Buat grup section di halaman settings |
add_settings_field() | Tambah field (dropdown/text/checkbox) ke section |
Helper WordPress: selected() untuk dropdown, checked() untuk checkbox — otomatis tambahkan atribut HTML yang tepat.
3. Plugin Word Count
- Filter
the_content→ hitung kata (str_word_count), karakter (strlen), waktu baca (words / 225) - Semua fitur bisa di-toggle via checkbox di settings
- Posisi tampilan (awal/akhir post) bisa dipilih
- Validasi custom:
sanitize_callback+add_settings_error()untuk nilai tidak valid
4. Translations / Lokalisasi (i18n)
__('text', 'domain')untuk return,_e()untuk echo- Selalu gunakan
esc_html__()untuk output ke halaman (keamanan) load_plugin_text_domain()di hookinit- Plugin Loco Translate untuk mengelola file
.pot/.po/.mo
5. Admin Menu & Sub-Menu
| Fungsi | Hasil |
|---|---|
add_options_page() | Halaman di bawah menu Settings (5 argumen) |
add_menu_page() | Menu baru di sidebar (7 argumen, termasuk icon + posisi) |
add_submenu_page() | Sub-menu di bawah menu utama |
Icon bisa pakai Dashicons atau custom SVG base64. CSS per halaman bisa dimuat via hook "load-{$mainPageHook}".
6. Plugin Word Filter
- Form handling manual (tanpa Settings API):
wp_nonce_field(),wp_verify_nonce(),current_user_can(),update_option() - Logika filter:
explode()→array_map('trim')→str_ireplace()(case-insensitive replace) - Sub-menu Options menggunakan Settings API standar
7. Perbedaan Settings API vs Manual
| Aspek | Settings API | Manual |
|---|---|---|
| Form action | options.php | URL halaman sendiri |
| Penyimpanan | Otomatis | update_option() |
| Keamanan | Otomatis via settings_fields() | Manual nonce + capability check |
Satu Kalimat
Plugin WordPress PHP dibangun di atas hooks (
add_action,add_filter), Settings API untuk konfigurasi, dan class PHP untuk menghindari konflik — semua dalam satu folder diwp-content/plugins/.