Dec 18, 2025
Faradilla A.
11menit Dibaca
WordPress menyediakan berbagai jenis postingan untuk membantu Anda menata konten website. Dengan fitur ini, Anda bisa membuat blog dengan urutan kronologis atau menampilkan halaman statis dengan mudah.
Namun, jenis postingan default ini mungkin masih kurang memadai untuk untuk website besar dengan jenis konten yang lebih beragam. Dalam hal ini, Anda bisa membuat jenis postingan khusus yang disebut custom post type.
Mau tahu lebih lanjut? Yuk, lanjutkan membaca! Di artikel ini, Anda juga akan mempelajari cara menyesuaikan custom post type untuk menambahkan lebih banyak fungsi yang Anda butuhkan.
Custom post type WordPress adalah kategori konten tambahan yang bisa dibuat pengguna untuk menata konten website dengan lebih fleksibel. Fitur ini sangat berguna kalau website Anda memiliki berbagai jenis konten yang tidak termasuk dalam jenis postingan default WordPress.
Meskipun Anda bisa mengelompokkan konten menggunakan kategori, semua postingan akan tetap muncul dalam daftar yang sama kalau dimasukkan dalam jenis postingan default. Hal ini membuat proses pengelolaan postingan jadi lebih sulit.
Secara default, WordPress memiliki tujuh jenis postingan:
Dengan custom post type, Anda bisa mengelompokkan konten ke dalam bagian khusus tanpa harus bergantung pada kategori. Hasilnya, pengelolaan konten menjadi lebih rapi dan proses pencarian konten juga menjadi lebih mudah.
Selain itu, custom post type mendukung berbagai opsi penyesuaian yang lebih lengkap daripada postingan default. Misalnya, Anda bisa mengatur ulang posisi menu custom post type, menyesuaikan tampilan layar editor, atau mengaktifkan fitur tambahan seperti featured image (gambar unggulan) dan ringkasan.
Sebelum membuat custom post type, ada dua istilah penting yang sebaiknya Anda pahami dulu: array dan element. Keduanya adalah bagian inti dari kode custom post type.
Sederhananya, array adalah struktur data yang menyimpan pasangan kunci dan nilai, yang disebut element. Dalam konteks WordPress, array digunakan untuk menyimpan properti dari custom post type.
Untuk membuat custom post type, ada tiga array utama yang berisi elemen berbeda: $args, $labels, dan $supports. Array utama, $args (singkatan dari arguments), berisi pasangan kunci-nilai, termasuk:
Selain elemen-elemen tersebut, $args menyimpan array $labels dan $supports yang berisi pasangan kunci-nilai yang berbeda. Sebaiknya buat variabel $labels terpisah untuk menyimpan semua pasangan kunci dan nilai agar kode Anda lebih rapi dan mudah dipahami
Array $label mendefinisikan teks custom post type dan menyimpan kunci-kunci berikut:
Sementara itu, array $supports berisi elemen yang mendefinisikan fitur-fitur custom post type. Nilai TRUE mengaktifkan fitur-fitur berikut:
Ada tiga cara yang bisa Anda gunakan untuk menambahkan custom post type di WordPress, masing-masing dengan kelebihan dan kekurangannya sendiri:
Dalam artikel ini, kita akan menggunakan metode ketiga. Sebelum melanjutkan, sebaiknya Anda membaca panduan kami tentang cara membuat plugin WordPress agar lebih familiar dengan penggunaan dasar kode kustom.
Untuk membuat custom post type, gunakan fungsi register_post_type(). Fungsi ini membutuhkan dua parameter: nama custom post type dan array $args.
Kode plugin juga harus menyertakan fungsi kustom yang memanggil register_post_type(). Jangan lupa mengaitkan fungsi ini ke hook tindakan init agar custom post type bisa terdaftar dengan benar.
Agar tidak terjadi konflik dengan plugin lain, gunakan prefix khusus pada nama fungsi, misalnya ht_.
Berikut contoh kode plugin sederhana untuk membuat custom post type Custom Article:
<?php
/*
Plugin Name: Custom Post Types
Description: Add post types for custom articles
Author: Hostinger Dev
*/
// Hook ht_custom_post_custom_article() to the init action hook
add_action( 'init', 'ht_custom_post_custom_article' );
// The custom function to register a custom article post type
function ht_custom_post_custom_article() {
// Set the labels. This variable is used in the $args array
$labels = array(
'name' => __( 'Custom Articles' ),
'singular_name' => __( 'Custom Article' ),
'add_new' => __( 'Add New Custom Article' ),
'add_new_item' => __( 'Add New Custom Article' ),
'edit_item' => __( 'Edit Custom Article' ),
'new_item' => __( 'New Custom Article' ),
'all_items' => __( 'All Custom Articles' ),
'view_item' => __( 'View Custom Article' ),
'search_items' => __( 'Search Custom Article' ),
'featured_image' => 'Poster',
'set_featured_image' => 'Add Poster'
);
// The arguments for our post type, to be entered as parameter 2 of register_post_type()
$args = array(
'labels' => $labels,
'description' => 'Holds our custom article post specific data',
'public' => true,
'menu_position' => 5,
'supports' => array( 'title', 'editor', 'thumbnail', 'excerpt', 'comments', 'custom-fields' ),
'has_archive' => true,
'show_in_admin_bar' => true,
'show_in_nav_menus' => true,
'query_var' => true,
);
// Call the actual WordPress function
// Parameter 1 is a name for the post type
// Parameter 2 is the $args array
register_post_type('article', $args);
}Perlu diperhatikan bahwa kodenya bisa berbeda tergantung pada custom post type Anda. Setelah selesai menulis kode, ikuti langkah-langkah berikut untuk mengubahnya menjadi plugin:




Anda bisa membuat sebanyak mungkin custom post type sesuai kebutuhan. Namun, performa REST API WordPress Anda bisa menjadi lebih lambat, dan menu admin juga bisa tampak lebih rumit.
Agar berbeda dari konten lainnya, Anda mungkin perlu menambahkan template khusus untuk custom post type yang sudah dibuat. Untuk melakukannya, buat file template di direktori tema aktif Anda.
Ada dua file yang Anda perlukan: single-{post_type}.php yang merupakan template untuk tampilan satu postingan, dan archive-{post_type}.php untuk halaman arsip custom post type.
Kalau Anda tidak membuat dua file ini, WordPress akan menggunakan file default single.php dan archive.php. Artinya, perubahan yang Anda lakukan bisa memengaruhi seluruh website, bukan hanya custom post type.
Cara paling praktis untuk membuat file template adalah dengan membuat duplikat file single.php dan archive.php dari tema aktif, lalu menggantinya dengan nama baru. Dengan cara ini, struktur tema tetap terjaga dan Anda hanya perlu menyesuaikan bagian kontennya.
Berikut langkah-langkah untuk melakukannya:


Penting! Tema dengan struktur postingan dan halaman yang sama tidak akan memiliki file single.php dan archive.php. Tema semacam ini hanya menggunakan file singular.php.
Untuk mengedit file template, Anda bisa mendownloadnya dulu lalu membukanya di aplikasi text editor, atau langsung dari File Manager kalau menggunakan layanan hosting dari Hostinger.
Setelah Anda menyimpan perubahan, template baru ini hanya akan memengaruhi tampilan custom post type yang bersangkutan, baik untuk halaman arsip maupun postingan individual.
Meta box adalah panel tambahan di layar editor WordPress yang memungkinkan Anda menambahkan metadata ke postingan. Metadata ini bisa berupa informasi tambahan seperti detail penulis, pengaturan publikasi, hingga slug khusus.
WordPress sebenarnya sudah menyediakan beberapa meta box default. Namun, untuk custom post type, biasanya Anda membutuhkan meta box tambahan yang lebih spesifik. Misalnya, custom post type Movies mungkin perlu meta box Genre.
Dengan meta box, Anda tidak perlu lagi mengisi nilai metadata secara manual. Cukup gunakan kolom input yang tersedia sehingga proses pengelolaan konten menjadi lebih cepat dan efisien.
Untuk membuat meta box kustom, Anda bisa menambahkan kode di file functions.php atau ke dalam kode plugin kustom yang tadi dibuat. Dalam tutorial ini, kita akan menambahkan kode langsung ke file plugin custom-post-type.php.
Karena kodenya bisa berbeda-beda tergantung pada konten dan penempatan meta box, kunjungi WordPress Codex untuk mendapatkan informasi lebih lanjut. Untuk tutorial ini, kami akan menjelaskan cara membuat meta box Author kustom:
// Add meta box
add_action("add_meta_boxes", "add_author_meta_box");
function add_author_meta_box()
{
add_meta_box(
"author_meta_box", // Meta box ID
"Author Details", // Meta box title
"author_meta_box_callback", // Meta box callback function
"article", // The custom post type parameter 1
"side", // Meta box location in the edit screen
"high" // Meta box priority
);
}
function author_meta_box_callback()
{
wp_nonce_field(‘author-nonce’, ‘meta-box-nonce’);
global $post;
placeholder
}// Add meta box content
?>
<th><label for="athor_name_field">Author Name</label><th>
<td><input
type="text"
id="author_name"
class="regular-text"
name=“Author_Name”
value=“”
/>
<td>
<th><label for="author_id_field">Author ID</label><th>
<td><input
type="text"
id="author_id"
class="regular-text"
name=“Author_ID”
Value=””
/>
<td>
<?php // Save meta box data
add_action ( 'save_post', 'author_save_postdata');
function author_save_postdata( $post_id ) {
// If this is an autosave, our form has not been submitted
if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE )
return $post_id;
// Retrieve post id
If (‘article’ !== get_post_type() ) {
return $post_id
}
// Check the user's permissions
if ( 'page' == $_POST['post_type'] ) {
if ( ! current_user_can( 'edit_page', $post_id ) )
return $post_id;
} else {
if ( ! current_user_can( 'edit_post', $post_id ) )
return $post_id;
}
/* OK, it is safe to save the data now. */
// Sanitize user input.
$mydata = sanitize_text_field( $_POST['Author_Name'] );
$mydata = sanitize_text_field( $_POST['Author_ID'] );
// Update the meta field in the database.
update_post_meta( $post_id, 'Author_Name', $_POST['Author_Name'] );
update_post_meta( $post_id, 'Author_ID', $_POST['Author_ID'] );
}Setelah menyelesaikan langkah ini, Anda akan melihat meta box yang baru di layar editor custom post type.

Untuk memastikan meta box berfungsi dengan benar, coba masukkan nilai di kolom input, lalu simpan postingan. Informasi yang Anda masukkan seharusnya muncul di bidang kustom.
Kalau Anda belum terlalu familiar dengan PHP, gunakan plugin Meta Box. Plugin ini bisa membantu menghasilkan kode meta box secara otomatis, meskipun Anda tetap perlu menambahkan fungsi add_meta_box() sendiri.
Setelah mendownload dan menginstal plugin, ikuti langkah-langkah berikut:


Gunakan plugin untuk menambahkan kode PHP di postingan atau halaman WordPress langsung melalui dashboard admin. Anda tidak perlu membuat file template atau menggunakan editor teks terpisah sehingga prosesnya lebih efisien dan minim risiko error.
Secara default, custom post type tidak langsung ditampilkan di halaman depan WordPress. Untuk mengaktifkannya, tambahkan fungsi kustom yang memanggil metode set dari objek WP_Query WordPress.
Berikut contohnya:
// Pin our custom function to the pre_get_posts action hook
add_action( 'pre_get_posts', 'add_article_to_frontpage' );
// Alter the main query
function add_article_to_frontpage( $query ) {
if ( is_home() && $query->is_main_query() ) {
$query->set( 'post_type', array( 'post', 'article' ) );
}
return $query;
}Dalam fungsi ini, $query->set() menerima dua parameter: properti yang diubah dan array yang menentukan nilainya. Pada contoh kami, properti yang dimodifikasi adalah post_type, sementara nilai array adalah post dan article.
Array ini mencakup ‘post’ untuk menampilkan jenis postingan default di halaman depan website Anda. Kalau Anda menghapusnya, halaman depan hanya akan menampilkan postingan dari custom post type saja.
Parameter kedua adalah ‘article’, yang menampilkan postingan artikel reguler dan semua postingan artikel kustom di halaman depan.
Untuk mengaktifkan kode ini, tempelkan ke file functions.php tema Anda atau ke file plugin kustom. Kami akan menunjukkan cara menempel kode tersebut ke dalam file plugin:

Sekarang, postingan default dan custom post type Anda akan ditampilkan bersama di halaman depan website WordPress Anda.
Setelah membuat custom post type, Anda mungkin perlu menambahkan custom field (bidang kustom) untuk memberikan detail tambahan pada konten.
Ada dua cara yang bisa Anda lakukan: memanfaatkan custom field bawaan WordPress, atau menggunakan plugin tambahan. Keduanya memiliki kelebihan dan kekurangan masing-masing, jadi pilihlah metode yang paling sesuai dengan kebutuhan Anda.
WordPress menyediakan fitur bawaan untuk menambahkan custom field (bidang kustom), hanya saja fitur ini tersembunyi secara default. Untuk mengaktifkannya, buka Editor postingan → Screen Option (Opsi Layar).

Setelah diaktifkan, Anda akan melihat panel custom field di bagian bawah layar editor. Dari sini, masukkan nama dan nilai untuk custom field, lalu klik Add Custom Field (Tambahkan Bidang Kustom).

Namun, perlu diperhatikan bahwa custom field bawaan ini tidak langsung ditampilkan di halaman depan website. Untuk menampilkannya, Anda perlu menambahkan fungsi the_meta() atau echo get_post_meta() ke file tema aktif.
Gunakan the_meta() untuk menampilkan semua custom field dalam postingan. Untuk menampilkan custom field tertentu, gunakan echo get_post_meta( $post->ID, ‘key’, TRUE). Ganti nilai key dengan nama custom field Anda.
Karena ada dua jenis postingan (default dan custom post type), Anda bisa mengedit single.php atau single-article.php, tergantung di mana custom field ingin ditampilkan.
Sebagai contoh, Anda ingin menambahkan custom field Author untuk custom post type Article. Dalam hal ini, tambahkan fungsi tadi di file single-article.php. Berikut langkah-langkahnya:


get_template_part( 'template-parts/post/content', get_post_format() );
Sekarang, custom field Author akan ditampilkan di bawah postingan artikel kustom Anda.

Sayangnya, Anda tidak bisa menggunakan tool bawaan WordPress untuk menambahkan custom field bagi jenis postingan tertentu. Tool ini akan secara otomatis menambahkan custom field baru untuk semua jenis postingan.
Untuk mengatasinya, gunakan plugin Advanced Custom Fields (ACF). Dengan plugin ini, Anda bisa menentukan custom field yang hanya berlaku pada jenis postingan tertentu.
Penting! Setelah plugin ACF aktif, panel custom field bawaan WordPress tidak akan muncul lagi di editor.
Setelah plugin aktif, ikuti langkah-langkah berikut untuk membuat dan mengaktifkan custom field bagi jenis postingan tertentu:


Karena bidang ini dibuat melalui plugin, Anda harus menggunakan fungsinya untuk menampilkan custom field. Langkah-langkahnya mirip dengan menambahkan custom field default, tapi kali ini masukkan fungsi the_post( ‘key’ );.
Custom post type di WordPress membantu Anda menata konten ke dalam kategori yang lebih spesifik. Namun, untuk website besar dengan konten yang lebih beragam, fitur default saja sering kali belum cukup.
Dalam hal ini, Anda bisa membuat plugin khusus untuk menambahkan custom post type lengkap dengan meta box, custom field, hingga pengaturan tampilan. Berikut ringkasan langkah-langkahnya:
Custom post type juga memiliki banyak opsi penyesuaian. Misalnya, Anda bisa mengonfigurasi layar pengeditan, menambahkan meta box, mengedit visibilitas jenis postingan, dan mengaktifkan fitur bawaan WordPress.
Fitur-fitur ini memungkinkan Anda membuat jenis postingan yang secara khusus disesuaikan dengan konten Anda. Hasilnya, website Anda menjadi lebih rapi, profesional, dan mudah dikelola.
Cara menambahkan CSS kustom ke WordPress
Cara membuat widget kustom WordPress
Cara menggunakan XAMPP untuk website WordPress lokal
Cara menambahkan kode PHP ke WordPress
Cara menduplikasi halaman di WordPress
Bagian ini akan menjawab pertanyaan umum tentang custom post type WordPress. Kalau ada pertanyaan lain, silakan sampaikan lewat kolom komentar di bawah artikel ini.
Di WordPress, istilah post (postingan) bisa merujuk pada satu konten individual, atau jenis postingan tertentu seperti halaman, lampiran, revisi, dan lain-lain. Sementara itu, custom post type adalah jenis konten tambahan yang dibuat sendiri oleh pengguna.
Anda bisa mengatur lokasinya di menu admin, mengaktifkan atau menonaktifkan pencarian, menambahkan fitur seperti excerpt, format post, trackback, serta mengubah layar editor dan menambahkan custom field untuk menyertakan informasi dalam konten, seperti author (penulis) atau waktu baca.
Ya, bisa. Untuk melihat ID postingan WordPress, arahkan kursor ke judul konten dan lihat URL di pojok kiri bawah. ID ini berupa angka di antara parameter “post=” dan “&“. Anda juga bisa mendapatkan ID unik custom post type berdasarkan judulnya menggunakan perintah get_page_by_title (). Atau, dapatkan menggunakan slug dengan perintah get_page_by_path ().
Semua konten tutorial di website ini telah melalui peninjauan menyeluruh sesuai standar dan komitmen editorial Hostinger.