WordPress Sebagai HeadLess CMS

2 min read

Disclaimer
Saya bekerja di AWS, semua opini adalah dari saya pribadi. (I work for AWS, my opinions are my own.)
WordPress sebagai headless CMS
Presentasi Rio Astamal pada WebDevTalk 2021

TeknoCerdas.com – Salam cerdas untuk kita semua. “Menggunakan WordPress sebagai Headless CMS” adalah materi yang saya bawakan pada event WebDevTalk 2021. Event tersebut adalah salah satu dalam rangkaian Indonesia Website Awards 2021 yang diselenggarakan oleh Exabytes Indonesia.

Materi presentasi saya dapat dilihat pada alamat URL berikut:
https://rioastamal.net/presentasi/2021/04/menggunakan-wordpress-sebagai-headless-cms/

WordPress memang tidak didesain dari awal sebagai headless CMS namun WordPress memiliki fitur REST API yang dapat dimanfaatkan oleh pihak ketiga untuk membuat frontend sendiri tampilan depan sehingga tidak tergantung theme dari WordPress.

Baca Juga
Static WordPress Hosting pada Infrastruktur TeknoCerdas

Apa itu Headless CMS?

Sebuah CMS yang tidak memiliki komponen sistem tampilan depan (frontend) atau sistem frontend tersebut terpisah dengan manajemen konten backend.

Berikut adalah bagan sederhana hubungan antara Frontend dan Backend pada Headless CMS.

                                 +-----------------------------------------+
+------------+     Read          |   +----------+           +-----------+  |
|  FRONTEND  |------------------>|   |  KONTEN  |<----------|  BACKEND  |  |
+------------+   REST/GRAPHQL    |   +----------+    Write  +-----------+  |
                                 +-----------------------------------------+

Penulis konten masuk melalui dashboard atau halaman backend. CMS kemudian menyediakan API dapat berupa REST atau GRAPHQL untuk pihak ketiga sehingga dapat dibangun frontend yang mandiri dan terpisah dari CMS.

REST API pada WordPress

Dari awal dibuat WordPress bukanlah sebuah headless CMS. Karena WordPress memiliki komponen frontend yang disebut theme yang menyatu dengan backend.

Akan tetapi sejak WordPress 4.7 yang dirilis pada Desember 2016 WordPress memiliki fitur REST API. Dimana dengan REST API ini konten dari WordPress seperti posts, comments, users, meta dan settings dapat diakses lewat REST API. Secara tidak langsung ini menjadikan WordPress sebagai headless CMS.

End point REST API yang digunakan oleh WordPress adalah:

/wp-json/wp/v2/

Sebagai contoh untuk mendapatkan daftar post atau artikel yang ada maka frontend harus melakukan request pada path /posts dengan HTTP method GET.

$ curl -X GET https://example.com/wp-json/wp/v2/posts
[
  {
    "id": 2130950,
    "date": "2021-03-26T21:24:06",
    "date_gmt": "2021-03-27T04:24:06",
    "guid": {
      "rendered": "https://example.com/?p=2130950"
    },
    "modified": "2021-03-26T23:16:18",
    "modified_gmt": "2021-03-27T06:16:18",
    "slug": "demo-content",
    "status": "publish",
    "type": "post",
    "link": “https://example.com/2021/03/26/demo-content/“,
    "title": {
      "rendered": "…"
    },
    "content": {
      "rendered": "...",
      "protected": false
    },
    "excerpt": {
      "rendered": "...",
      "protected": false
    },
    ...
    }
  }
]

Untuk daftar lengkap end point apa saja yang disediakan WordPress REST API dan parameternya silahkan merujuk pada dokumentasi resmi WordPress di https://developer.wordpress.org/rest-api/.

Kekurangan Headless WordPress

Selalu ada dua sisi yang bisa dilihat dari implementasi sesuatu. Termasuk implementasi headless WordPress. Jika kita melihat dari sisi kekurangan setidaknya ada 3 hal menurut saya perlu dipertimbangkan.

Pertama – WordPress theme tidak bisa digunakan. WordPress terkenal dengan pilihan theme yang sangat banyak dan variatif. Dengan menggunakan headless WordPress anda tidak bisa menggunakan theme tersebut karena theme tersebut terintegrasi secara kode dengan backend langsung.

Kedua – Tidak semua plugin bisa digunakan. Sama dengan theme WordPress dikenal dengan banyaknya plugin untuk berbagai keperluan. Sebut saja WooCommerce, LearnDash dan masih banyak lagi. Jika sebuah plugin memodifikasi tampilan depan maka plugin tersebut kemungkinan tidak bisa digunakan.

Ketiga – Perlu penanganan khusus untuk SEO. Hal ini dikarena ketika diawal halaman dipanggil belum ada konten yang ada salah satunya hanya kode Javascript yang digunakan untuk memanggil REST API. Ini mempengaruhi kualitas SEO dan juga saat melakukan sharing di platform social media.

Kelebihan Headless WordPress

Pertama – Multi language development. Bisa jadi dalam satu tim tidak semua menguasai PHP dimana itu diperlukan untuk theme development. Kebanyakan tim mungkin familiar dengan Python atau Javascript sehingga bahasa tersebut tetap dapat digunakan sebagai frontend dengan WordPress bertindak sebagai penyedia konten lewat REST API.

Kedua – Mutli-platform deployment. Karena frontend dapat berupa bahasa pemrograman apapun maka deployment frontend untuk headless WordPress dapat dilakukan diberbagai platform seperti mobile app, desktop atau bahkan text interface (CLI). Sebagai contoh jika sebuah organisasi sudah memiliki aplikasi traveling dan ingin terdapat konten didalamnya maka dapat menggunakan headless WordPress untuk pengelolaan konten.

Ketiga – WordPress sudah sangat populer. Berdasarkan survey W3Tech per artikel ini ditulis WordPress CMS yang digunakan oleh lebih dari 40% website yang ada di internet. Sehingga mudah menemukan content writer yang familiar dengan WordPress daripada membuat platform CMS baru.