WordPress adalah platform blogging dan CMS (Content Management System) yang sangat populer. Salah satu alasan mengapa WordPress sangat populer adalah fleksibilitas dan kemampuannya untuk disesuaikan sesuai kebutuhan pengguna. Salah satu cara untuk menyesuaikan WordPress adalah dengan membuat “Custom Post Types” (CPT).
Custom Post Types memungkinkan Anda untuk membuat jenis konten baru di WordPress selain konten standar seperti ‘post’ dan ‘pages’. Anda bisa membuat CPT untuk apa saja, misalnya untuk ‘buku’, ‘film’, ‘resepi’, dan lain-lain.
Berikut ini adalah cara membuat Custom Post Types tanpa menggunakan plugin:
Membuat Custom Post dengan Script
Membuka file functions.php
File functions.php
adalah tempat di mana Anda bisa menambahkan fungsi kustom ke tema WordPress Anda. Anda bisa menemukannya di dalam folder tema aktif Anda, biasanya di wp-content/themes/{nama-tema}/
.
Kalau saya sendiri, lebih suka menggunakan plugin injeksi kode, untuk memasukkan script PHP ini.
Menambahkan fungsi untuk membuat Custom Post Type
Tambahkan kode berikut ke dalam file functions.php
Anda:
add_action( 'init', 'create_book_post_type' ); function create_book_post_type() { register_post_type( 'buku', array( 'labels' => array( 'name' => __( 'Buku' ), 'singular_name' => __( 'Buku' ) ), 'public' => true, 'has_archive' => true, 'supports' => array( 'title', 'editor', 'author', 'thumbnail', 'excerpt', 'comments' ), ) ); }
Kode di atas akan membuat Custom Post Type dengan nama ‘buku’. Anda bisa mengganti ‘buku’ dengan apa pun yang Anda inginkan.
Menambahkan fungsi untuk membuat custom taxonomy
Selain membuat Custom Post Type, Anda juga bisa membuat ‘custom taxonomy’ untuk mengorganisir konten Anda. Taxonomy adalah cara untuk mengelompokkan konten di WordPress. ‘Category’ dan ‘Tag’ adalah contoh taxonomy standar di WordPress.
Tambahkan kode berikut ke dalam file functions.php
Anda untuk membuat custom taxonomy:
// Register custom categories register_taxonomy( 'buku_category', 'buku', array( 'label' => __( 'Kategori Buku' ), 'rewrite' => array( 'slug' => 'buku_category' ), 'hierarchical' => true, ) ); // Register custom tags register_taxonomy( 'buku_tags', 'buku', array( 'label' => __( 'Tags Buku' ), 'rewrite' => array( 'slug' => 'buku_tags' ), 'hierarchical' => false, ) );
Kode di atas akan membuat dua custom taxonomy, yaitu ‘Kategori Buku’ dan ‘Tags Buku’, yang bisa digunakan untuk mengelompokkan Custom Post Type ‘buku’.
Jika Anda menggunakan plugin injeksi kode, cukup tambahkan saja kode diatas di dalam script yang sama dengan script Custom Post Type sebelumnya. Letakkan di bagian bawah nya saja.
Menyimpan perubahan dan mengecek hasilnya
Setelah menambahkan kode di atas, simpan perubahan pada file functions.php
dan buka dashboard WordPress Anda. Anda seharusnya akan melihat Custom Post Type ‘buku’ dan taxonomy ‘Kategori Buku’ dan ‘Tags Buku’ di menu sebelah kiri.
Label tags dan Kategori tidak muncul di front end
Untuk menampilkan tag dan kategori di front end, Anda perlu menambahkan kode ke file template custom post type Anda (misalnya, single-buku.php
jika Anda memilikinya). Jika Anda tidak memilikinya, Anda bisa membuatnya berdasarkan single.php
atau index.php
. Berikut kode untuk menampilkan tag dan kategori:
<?php // Kode di atas template // ... // Kode untuk menampilkan kategori $categories = get_the_terms( $post->ID, 'buku_category' ); if ( $categories && ! is_wp_error( $categories ) ) : echo '<div class="buku-categories">'; foreach ( $categories as $category ) { echo '<a href="' . get_term_link( $category->slug, 'buku_category' ) . '">' . $category->name . '</a>'; } echo '</div>'; endif; // Kode untuk menampilkan tags $tags = get_the_terms( $post->ID, 'buku_tags' ); if ( $tags && ! is_wp_error( $tags ) ) : echo '<div class="buku-tags">'; foreach ( $tags as $tag ) { echo '<a href="' . get_term_link( $tag->slug, 'buku_tags' ) . '">' . $tag->name . '</a>'; } echo '</div>'; endif; // Kode lain di bawah template // ... ?>
Kode ini akan mencetak kategori dan tag ke halaman, dan Anda bisa menyesuaikannya dengan kebutuhan Anda (misalnya, menambahkan koma antar tag atau kategori, atau mengubah tata letak).
Penjelasan lebih lanjut
Setiap post type di WordPress memiliki file template khusus yang mengendalikan bagaimana kontennya ditampilkan di front end. Untuk post biasa, file template biasanya adalah single.php
. Jika Anda membuat custom post type, WordPress mencari file template dengan nama single-{post-type}.php
, di mana {post-type}
adalah nama dari post type kustom Anda.
Jadi, dalam kasus Anda, WordPress akan mencari file single-buku.php
untuk menampilkan konten dari custom post type “buku”. Jika tidak ada, maka WordPress akan menggunakan single.php
sebagai gantinya.
Untuk menambahkan tautan tag dan kategori ke halaman post “buku”, Anda perlu menambahkan kode yang kami berikan sebelumnya ke dalam file template ini. Jika file single-buku.php
tidak ada, Anda bisa membuatnya dengan cara mengcopy single.php
atau index.php
dan mengubah namanya menjadi single-buku.php
.
Langkah-langkah dalam melakukan nya
- Cari file
single.php
atauindex.php
di folder theme Anda. Biasanya berada diwp-content/themes/{nama-theme}
. - Copy file tersebut dan tempelkan di folder yang sama.
- Ganti nama file yang baru dipaste menjadi
single-buku.php
. - Buka
single-buku.php
dan tambahkan kode yang kami berikan sebelumnya di tempat yang Anda inginkan. Biasanya ditempatkan setelahthe_content()
atau sebelumcomments_template()
, tergantung di mana Anda ingin menampilkan tautan tag dan kategori. - Simpan perubahan dan cek halaman post “buku” Anda di front end. Anda seharusnya bisa melihat tautan tag dan kategori sekarang.
Harap diingat bahwa ini hanyalah petunjuk umum dan cara tepatnya mungkin sedikit berbeda tergantung pada theme yang Anda gunakan. Jika Anda masih memiliki masalah atau pertanyaan, jangan ragu untuk bertanya.
Pertanyaan Sering Diajukan
Archive tags tidak muncul
Jika Anda membuat post dan menambahkan tags dengan nama “Buku Tulis”, kemudian mempublikasikan nya, kemudian mengeklik tags tersebut, dan ternyata tidak muncul postingan yang dibuat sebelum nya (yang berisi tags “Buku Tulis”), mungkin Anda perlu melakukan flush (pembaharuan pada permalink) setelah membuat custom post type.
Ini dapat dilakukan dengan pergi ke Settings > Permalinks di dashboard WordPress Anda dan kemudian klik “Save Changes” tanpa mengubah apa pun.
Penutup dalam Membuat Custom Post tanpa Plugin
Itulah cara membuat Custom Post Types tanpa menggunakan plugin di WordPress. Meski demikian, selalu pastikan untuk membuat backup situs Anda sebelum melakukan perubahan pada file tema, dan jangan lupa untuk menguji semua perubahan di lingkungan pengembangan sebelum menerapkannya di situs live Anda. Selamat mencoba!