Skip to content

Pengenalan & Membuat Plugin Pertama

Gambaran Umum Chapter

Chapter ini membahas pengembangan plugin WordPress menggunakan PHP. Tiga chapter berturut-turut akan membahas:

  1. Chapter 22 — Plugin Development PHP (chapter ini)
  2. Chapter 23 — Plugin Development Blocks/Gutenberg/React (JavaScript)
  3. Chapter 24 — Plugin Multiple Choice Block Type

Plugin yang Akan Dibuat:

PluginDeskripsi
Word CountMenampilkan statistik post: jumlah kata, karakter, waktu baca
Word FilterMenyaring kata-kata tertentu dan menggantinya
Multiple Choice QuizBlock type kuis interaktif (Chapter 24)
Professor CalloutBlock type untuk menampilkan profil professor
Pet AdoptionPlugin 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 table10x 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 baru

Langkah 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 Plugins
  • Description — Deskripsi singkat plugin
  • Version — Versi plugin
  • Author — Nama pembuat
  • Author URI — URL website pembuat
  • Text Domain — ID unik untuk sistem terjemahan
  • Domain 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-instantiate
  • array($this, 'methodName') — Cara WordPress mereferensikan method dalam class sebagai callback
  • add_filter('the_content', ...) — Hook ke filter konten post
  • is_single() — Cek apakah sedang di halaman single post
  • is_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

  1. Buka dashboard WordPress → Plugins
  2. Temukan plugin "Our Word Count Plugin"
  3. Klik Activate
  4. Buka salah satu post untuk melihat hasilnya

Konsep Penting

add_filter() vs add_action()

FungsiKegunaan
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.