Hampir setiap website WordPress custom yang saya kerjakan memiliki kebutuhan yang berbeda. Ada yang berupa company profile, directory, knowledge base, hingga website internal perusahaan dengan ribuan data. Namun, meskipun jenis project-nya berbeda-beda, saya mulai menyadari ada satu pola yang terus berulang. Cepat atau lambat, client biasanya akan bertanya, “Search-nya bisa dibuat lebih pintar nggak?” Menariknya, mereka tidak pernah bertanya bagaimana cara saya membangunnya. Mereka tidak peduli apakah saya menggunakan WP_Query, WordPress REST API, atau teknologi lainnya. Yang mereka rasakan hanya satu hal. Kalau data yang mereka cari tidak muncul, berarti fitur search dianggap belum bekerja dengan baik. Sejak saat itu,…
TL;DR Banyak developer langsung memakai Vite, Webpack, atau starter kit saat mulai dengan Tailwind CSS. Pendekatan itu memang modern — tapi tidak selalu dibutuhkan. Sebagian besar proyek WordPress yang saya kerjakan adalah custom theme berbasis PHP. Strukturnya sederhana. Saya tidak butuh Hot Module Replacement atau development server yang rumit. Yang saya butuhkan: compile CSS yang cepat, watch file yang andal, dan livereload agar iterasi desain terasa ringan. Solusi yang saya pakai: Tailwind CSS CLI untuk build CSS, Prepros untuk hal-hal di luar Tailwind. Kombinasi ini sudah saya gunakan di berbagai proyek dan sampai hari ini masih jadi workflow utama saya.…
Custom Gutenberg Block ACF Pro menjadi solusi yang saya bangun saat content creator butuh alat penulisan yang fleksibel, tetapi saya tidak ingin terjebak menulis React maupun JavaScript block yang terlalu rumit. Gutenberg memang sudah jadi fondasi yang kuat, namun blok bawaan sering kurang sesuai dengan struktur konten spesifik di website klien. Artikel ini adalah studi kasus dari pengalaman pribadi saya, bukan tutorial generik. Saya akan memandu Anda lewat proses implementasinya, mulai dari fondasi reusable block, registrasi dinamis, kategori kustom, contoh InnerBlocks, contoh field ACF, hingga PHP rendering. Mari langsung masuk ke studinya. Tantangan yang Saya Hadapi Saya membutuhkan custom blocks…