Beberapa waktu yang lalu saya menemukan studi kasus yang cukup unik saat memperbaiki custom script PHP pada WordPress. Studi kasus tersebut menyangkut soal bagaimana cara menampilkan child category atas sebuah artikel dan menampilkannya ke dalam browser.

Memang secara hierarki, struktur kategori WordPress bisa dibilang sudah sangat rapi, karena bisa membedakan parent category dan child category. Dari dasar inilah bisa dipastikan WordPress menyediakan fungsi khusus untuk menampilkan semua kategori yang berhubungan dengan sebuah postingan atau artikel.

Bila melihat dokumentasi fungsi PHP yang tersedia di WordPress, maka untuk menampilkan child category sebetulnya cukup dengan memanggil fungsi the_category(‘single’). Nilai dari parameter ‘single’ bisa diganti dengan ‘multiple’ jika menginginkan semua kategori ditampilkan menurut struktur parent dan child category-nya.

Nah, masalahnya output dari fungsi tersebut berupa sebuah hyperlink yang didalamnya memuat tag anchor <a href=”…”>Nama Kategori</a>. Padahal output yang saya butuhkan adalah nama kategorinya saja, tanpa embel-embel elemen/tag/atribut HTML.

Solusi yang sempat terpikirkan untuk menyelesaikan masalah tersebut diantaranya dengan memanfaatkan fungsi strip_tags() dan preg_replace(). Sayangnya setelah beberapa kali mencoba menghilangkan atau memanipulasi tag pembuka dan penutup tag anchor, masih belum sesuai dengan yang diharapkan.

Setelah sekian lama mencari, akhirnya ketemu solusinya. Caranya yaitu cukup dengan fungsi esc_html(). Fungsi tersebut digunakan untuk mendeteksi sekaligus membersihkan sebuah string teks yang berisi elemen atau tag elemen HTML. Dengan cara inilah akhirnya nama child category yang saya butuhkan bisa ditampilkan tanpa mengandung elemen hyperlink.

<?php 
      $categories = get_the_category();
      if ( ! empty( $categories ) ) {
         echo esc_html( $categories[0]->name );
      } 
?>

 


Komentar
Unlimited Hosting WordPress Developer Persona

You can subscribe to my newsletter to get updates (no spam).

powered by TinyLetter