/ WORDPRESS

Membuat Custom Taxonomy di Wordpress

Di Wordpress kita mengenal yang namanya category dan tag. Ini merupakan 2 jenis taxonomy yang kita gunakan untuk mengelompokkan tulisan kita agar terorganisir dengan baik dan memudahkan pembaca menemukan jenis tulisan tertentu.

Namun terkadang, kedua taxonomy ini terasa masih kurang untuk membuat struktur blog kita terorganisir dengan baik terutama untuk blog atau website yang memiliki banyak jenis konten.

Contohnya bila blog kita memiliki beberapa jenis bacaan: artikel, tutorial, course, quote, dll. Atau tulisan kita memiliki beberapa jenis tingkatan: beginner, intermediate, advance. Contoh lainnya lagi kita ingin membagi tulisan kita berdasarkan lokasi, dll. Dalam kondisi ini, tentu kita butuh taxonomy lain selain category dan tag.

Dalam tutroial kali ini, kita akan mambahas tentang:

  1. Cara membuat custom taxonomy
  2. Cara menampilkan taxonomy di frontend Wordpress
  3. Cara membuat halaman archive untuk taxonomy

1. Cara membuat custom taxonomy

Untuk membuat custom taxonomy, kita akan menggunakan fungsi register_taxonomy dari Wordpress. Fungsi ini bisa letakkan di file functions.php yang ada di folder theme yang kita gunakan. Namun alangkah baiknya jika kita membuat plugin tersendiri untuk fungsi ini. Dalam tutorial kali ini, kita akan membuat plugin baru untuk membuat custom taxonomy.

Pertama kita buat sebuah file php baru di dalam folder plugins Wordpress. Plugini ini saya beri nama my-custom-taxonomy.php. Kalian bisa gunakan nama lain yang kalian inginkan.

Kemudian masukkan kode di bawah ini untuk membuat sebuah plugin baru:

<?php
/*
* Plugin Name: My Custom Taxonomy
* Description: Plugin ini adalah contoh untuk membuat custom taxonomy
* Version: 1.0
* Author: belajarotodidak.com
* Author URI: https://belajarotodidak.com
*/

Code ini digunakan untuk membuat sebuah plugin baru.

Selanjutnya, masukkan code di bawah ini untum membuat custom taxonomy:

function wporg_register_taxonomy_type() {
    $labels = [
        'name'              => _x('Types', 'taxonomy general name'),
        'singular_name'     => _x('Type', 'taxonomy singular name'),
        'search_items'      => __('Search Types'),
        'all_items'         => __('All Types'),
        'parent_item'       => __('Parent Type'),
        'parent_item_colon' => __('Parent Type:'),
        'edit_item'         => __('Edit Type'),
        'update_item'       => __('Update Type'),
        'add_new_item'      => __('Add New Type'),
        'new_item_name'     => __('New Type Name'),
        'menu_name'         => __('Type'),
    ];
    $args = [
        'hierarchical'      => true, //hirarki seperti category, atau tanpa hirarki seperti tag
        'labels'            => $labels,
        'show_ui'           => true,
        'show_admin_column' => true,
        'query_var'         => true,
        'rewrite'           => ['slug' => 'type'],
    ];

    register_taxonomy('type', ['post'], $args);

}

add_action('init', 'wporg_register_taxonomy_type');
?>

Penjelasan Code

Fungsi wporg_register_taxonomy_type merupakan fungsi yang akan kita jalankan melalui action. Fungsi ini berisi semua yang dibutuhkan untuk membuat custom taxonomy.

$labels merupakan array yang berisi semua informasi mengenai taxonomy yang kita buat. Informasi inilah yang nantinya akan ditampilkan di halaman admin untuk mengelolah taxonomy ini.

$args berisi pilihan untuk configurasi custom taxonomy.

register_taxonomy merupakan fungsi dalam Wordpress yang digunakan untuk mendaftarkan custom taxonomy.

Setelah code dimasukkan dan disimpan, silahkan aktifkat terlebih dahulu plugin yang sudah kita buat ini. Jika tidak ada masalah maka sekarang kalian sudah punya taxonomy baru di halaman editing post seperti ini.

2. Cara menampilkan taxonomy di frontend Wordpress

Selanjutnya bagaimana cara menampilkan custom taxonomy di frontend Wordpress kita? Setelah kita membuat custom taxonomy, taxonomy kita tidak secara otomatis muncul di frontend Wordpress kita. Kita perlu memasukkannya ke template kita, baik di postingan, sidebar, atau di main manu sesuai dengan kebutuhan.

Untuk memasukkan custom taxonomy ke main menu cukup mudah, karena di menu Menus sudah tersedia pilihan untuk memasukkan custom taxonomy yang baru kita buat.

Nah, bagaimana untuk menampilkan custom taxonomy di postingan?

Ada banyak cara. Kita cukup mengedit file template single.php di folder theme yang kita gunakan. Kita bisa menggunaka beberapa fungsi yang ada di Wordpress misalnya:

  • the_terms: menampilkan list terms dalam sebuah postingan.
  • get_the_terms: mengambil daftar terms sebelum di tampilkan. -wp_tag_cloud: membuat tag cloud dari sebuah taxonomy.
  • taxonomy_exists: mengecek apakah suatu taxonomy exists.
  • has_term: mengecek apakah sebuah post memiliki term dari taxonomy tertentu.
  • get_term_link: mengambil url dari sebuah term.
  • dll.

Di sini kita akan menggunakan beberapa fungsi tersebut.

Perhatikan contoh di bawah:

<?php
 if (has_term('', 'type')) {   
   echo '<span>';
   echo '<i class="fa fa-file" aria-hidden="true"></i> ';
   $terms = get_the_terms(get_the_ID() , 'type');
   foreach ( $terms as $term ) {
     $url = get_term_link($term->slug, 'type');
     echo '<a href="'.$url.'">'.$term->name.'</a>';
   }
   echo '</span>';
 }
?>

Penjelasan code:

  • Pertama kita cek apakah ada taxonomy type dengan term apapun pada postingan yang sedang dibuka dengan menggunakan fungsi has_term.
  • Jika ada, maka code akan dieksekusi. Selanjutnya kita mengambil data terms dari current post dengan fungsi get_the_terms kemudian looping dengan foreach.
  • Kita juga mengambil link halaman archive dari tiap term dengan get_term_link.
  • Dan terakhir kita tampilkan hasilnya dalam bentuk link.

Hasilnya seperti ini

3. Cara membuat halaman archive untuk taxonomy

Kalau kalian mengklik link custom taxonomy (klik term Tutorial pada contoh di atas), maka kemungkinan akan terjadi error HTTP ERROR 404.

Hal ini dikarenakan file .htaccess yang digunakan untuk permalink tidak otomatis terupdate saat kita membuat custom taxonomy baru. Untuk itu, kita perlu mengupdate permalink pada halaman admin Wordpress kita melalui menu Settings > Permalinks, kemudian langsung menekan tombol Save Changes.

Sekarang halaman archive custom taxonomy sudah bisa diakses. Biasanya mengikuti template archive.php.

Sebagai tambahan, kalian bisa membuat halaman archive dengan template yang berbeda dengan category atau tag. Caranya dengan membuat file taxonomy-{taxonomy}.php. Jad untuk halaman taxonomy Type, nama filenya menjadi taxonomy-type.php.

Bila ingin membuat halaman taxonomy khusus untuk satu jenis term misalnya Tutorial, maka kalian juga bisa membuat tempate dengan nama texonomy-type-tutorial.php.

Conclusion

Dalam tutorial ini kita sudah membahas tentang Cara membuat custom taxonomy di Wordpress. Selain itu, kita juga sudah membahas tentang cara menampilkan custom taxonomy ke frontend Wordpress, dan cara membuat halaman archive untuk taxonomy.

Semoga tutorial ini bermanfaat dan selamat mencoba.