Skip to content

Pengenalan Full Site Editing (FSE) & Membuat Block Theme

Catatan Penting tentang Best Practice 2024

Sebelum memulai chapter ini, perlu diketahui bahwa WordPress terus berkembang. Di chapter berikutnya (Chapter 28-29) akan dibahas pendekatan lebih modern menggunakan:

  • block.json — file metadata untuk block
  • render.php — file render terpisah
  • Interactivity API — API baru untuk interaktivitas

Chapter ini tetap penting karena memahami fondasi dasar cara kerja block theme.


Apa Itu Full Site Editing (FSE)?

FSE adalah fitur WordPress yang memungkinkan pengguna mengedit seluruh bagian website melalui block editor, termasuk:

FiturPenjelasan
Edit homepageMengubah layout dan konten halaman utama
Rearrange contentMengatur ulang posisi elemen
Edit single post templateMengubah tampilan post individual
Custom landing pageMembuat halaman landing kustom
Clear customizationsMengembalikan ke template default theme

Penting: File theme.json

Bahkan file theme.json kosong ({}) harus ada agar editor FSE berfungsi dengan benar.


Membuat Block Theme dari Nol

Struktur Minimum Block Theme

fictional-block-theme/
├── style.css          ← Theme metadata
├── index.php          ← File kosong (wajib ada)
├── theme.json         ← Konfigurasi theme (minimal {} kosong)
└── templates/
    └── index.html     ← Template utama

1. File style.css

css
/*
Theme Name: Fictional Block Theme
*/

2. File index.php

File ini kosong — hanya perlu ada sebagai persyaratan WordPress.

3. Folder templates/ dan index.html

File template menggunakan format HTML (index.html bukan index.php).


Sintaks Block Comments

Konten di block theme bukan HTML biasa, tapi menggunakan block comments:

html
<!-- wp:paragraph -->
<p>Ini adalah paragraf.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2>Ini Heading</h2>
<!-- /wp:heading -->

Penting: Konten harus dalam format block comments, BUKAN raw HTML biasa.


Workflow Database-to-File

Ketika pengguna mengedit template melalui FSE:

  1. Perubahan disimpan di database (wp_posts table), bukan langsung di file
  2. Template yang sudah dikustomisasi ditandai dengan ikon biru di daftar template
  3. Pengguna bisa "Clear customizations" untuk mengembalikan ke versi file di hard drive
  4. Untuk mendapatkan kode template: bisa export zip dari editor, atau copy dari database

Cara Export Template

  • Dari full site editor → klik tiga titik (...) → pilih Export
  • Atau langsung buka tabel wp_posts di database → cari entry template terbaru

Sistem Penamaan Template

Sama seperti traditional theme, hanya ekstensinya .html:

Traditional ThemeBlock ThemeFungsi
single.phpsingle.htmlSingle blog post
page.phppage.htmlSingle page
archive.phparchive.htmlArchive listing
single-{posttype}.phpsingle-{posttype}.htmlSingle custom post type
front-page.phpfront-page.htmlHalaman depan
index.phpindex.htmlFallback template

Dynamic Content di Block Theme

Block Bawaan WordPress untuk Konten Dinamis

WordPress menyediakan block bawaan seperti:

  • Post Title — menampilkan judul post
  • Post Content — menampilkan konten post
  • Query Loop — menampilkan daftar post

Keterbatasan Query Loop Block

Query Loop block terbatas — hanya bisa filter berdasarkan:

  • Post type
  • Category

Tidak bisa melakukan:

  • meta_query (query berdasarkan custom field)
  • Query relasi yang kompleks
  • Filter lanjutan lainnya

PHP Tetap Penting!

Di balik layar, block bawaan WordPress seperti Post Title tetap menggunakan PHP:

php
// Contoh: core block post-title.php secara internal memanggil
get_the_title()

Untuk kebutuhan yang lebih kompleks, kita harus membuat custom block sendiri.


Strategi: Memecah Desain Menjadi Block

Langkah membangun block theme:

  1. Analisis desain — identifikasi bagian-bagian yang bisa dijadikan block
  2. Mulai dari yang paling kompleks — seperti banner block
  3. Buat block yang reusable — heading, button, dll.
  4. Gunakan PHP render callback — untuk HTML yang kompleks
  5. Gunakan placeholder block — untuk konten yang tidak perlu interaksi editor

Kesimpulan

KonsepPenjelasan
FSEEdit seluruh website via block editor
Block ThemeTheme berbasis HTML template + block comments
theme.jsonFile konfigurasi wajib (minimal kosong)
Database-to-fileEditan di DB, revert ke file template
Template namingSama seperti PHP theme, tapi .html
Query LoopTerbatas — custom block diperlukan untuk query kompleks