Pengenalan & Membuat Plugin Pertama
Gambaran Umum Chapter
Chapter ini membahas pengembangan plugin WordPress menggunakan PHP. Tiga chapter berturut-turut akan membahas:
- Chapter 22 — Plugin Development PHP (chapter ini)
- Chapter 23 — Plugin Development Blocks/Gutenberg/React (JavaScript)
- Chapter 24 — Plugin Multiple Choice Block Type
Plugin yang Akan Dibuat:
| Plugin | Deskripsi |
|---|---|
| Word Count | Menampilkan statistik post: jumlah kata, karakter, waktu baca |
| Word Filter | Menyaring kata-kata tertentu dan menggantinya |
| Multiple Choice Quiz | Block type kuis interaktif (Chapter 24) |
| Professor Callout | Block type untuk menampilkan profil professor |
| Pet Adoption | Plugin dengan custom database table (100K+ items) |
Mengapa Custom Database Table?
Brad menjelaskan perbandingan performa:
- Custom Post Type dengan 100.000 item → query lambat
- Custom SQL pada custom table → 10x lebih cepat
- Untuk data massal, custom table jauh lebih efisien
Membuat Plugin Pertama: Word Count
Langkah 1: Buat Folder Plugin
Buat folder baru di wp-content/plugins/:
wp-content/
plugins/
our-first-unique-plugin/ ← folder plugin baruLangkah 2: Buat File PHP Utama
Buat file our-first-unique-plugin.php di dalam folder tersebut.
Setiap plugin WordPress HARUS memiliki PHP comment header di bagian atas file:
php
<?php
/*
Plugin Name: Our Word Count Plugin
Description: A truly amazing plugin.
Version: 1.0
Author: Brad
Author URI: https://www.udemy.com/user/developer
Text Domain: wcpDomain
Domain Path: /languages
*/Penjelasan header:
Plugin Name— Nama yang muncul di halaman PluginsDescription— Deskripsi singkat pluginVersion— Versi pluginAuthor— Nama pembuatAuthor URI— URL website pembuatText Domain— ID unik untuk sistem terjemahanDomain Path— Lokasi folder file bahasa
Langkah 3: Security Check
Tambahkan baris keamanan setelah header:
php
defined('ABSPATH') or die('No direct access allowed.');Ini mencegah akses langsung ke file PHP plugin melalui browser.
Langkah 4: Menggunakan PHP Class
Untuk menghindari konflik nama fungsi dengan plugin lain, gunakan PHP Class:
php
class WordCountAndTimePlugin {
function __construct() {
add_filter('the_content', array($this, 'ifWrap'));
}
function ifWrap($content) {
if (is_single() && is_main_query()) {
return $content . '<p>This post has ' . str_word_count(strip_tags($content)) . ' words.</p>';
}
return $content;
}
}
$wordCountAndTimePlugin = new WordCountAndTimePlugin();Penjelasan Kode:
class WordCountAndTimePlugin— Membungkus semua fungsi dalam satu class__construct()— Method yang otomatis dijalankan saat class di-instantiatearray($this, 'methodName')— Cara WordPress mereferensikan method dalam class sebagai callbackadd_filter('the_content', ...)— Hook ke filter konten postis_single()— Cek apakah sedang di halaman single postis_main_query()— Cek apakah ini query utama (bukan sidebar/widget)str_word_count(strip_tags($content))— Hitung jumlah kata setelah menghapus HTML tags
Langkah 5: Aktifkan Plugin
- Buka dashboard WordPress → Plugins
- Temukan plugin "Our Word Count Plugin"
- Klik Activate
- Buka salah satu post untuk melihat hasilnya
Konsep Penting
add_filter() vs add_action()
| Fungsi | Kegunaan |
|---|---|
add_filter() | Memodifikasi data yang sedang diproses (misal: konten post) |
add_action() | Menjalankan kode pada titik tertentu (misal: saat admin_menu dimuat) |
Callable Syntax dalam Class
php
// Di luar class:
add_filter('the_content', 'functionName');
// Di dalam class:
add_filter('the_content', array($this, 'methodName'));$this merujuk ke instance class saat ini, dan 'methodName' adalah nama method yang akan dipanggil.