Aldwin Nayoan Aldwin is a content writer at Niagahoster. Specializing in web hosting and WordPress, he is eager to help people uplevel their business on the internet. Apart from being a tech junkie, Aldwin likes fiction and photography.

3 Cara Membuat Custom Post Type WordPress

11 min read

Featured image custom post type

WordPress memungkinkan Anda untuk mengkategorikan konten website sebagai halaman (page) dan posting (post). Untuk penggunaan secara umum, metode ini sudah cukup memudahkan Anda dalam merapikan isi website.

Namun, bagaimana jika situs Anda terdiri dari konten-konten yang tidak berupa halaman atau posting biasa?

Sebaiknya Anda menggolongkan konten tersebut dalam jenis lain. Apalagi jika Anda sering mem-posting jenis konten tersebut. Untuk itu, Anda perlu membuat custom post type.

Belum tahu caranya? Jangan khawatir. Di artikel ini, Anda akan dipandu untuk melakukannya dalam tiga cara. Selamat membaca!

Apa Itu Custom Post Type WordPress?

Custom post type adalah salah satu cara yang dapat Anda lakukan untuk menyortir konten situs WordPress. Dengannya, Anda dapat membuat post type selain Page dan Post.

Misalnya, Anda menggunakan website sebagai portfolio online untuk jasa desain interior. Dengan tipe posting custom, Anda dapat mengkategorikan halaman-halaman portfolio sebagai post type tersendiri.

Selain itu, custom post type juga dapat Anda gunakan untuk jenis konten lainnya, termasuk:

  • Halaman produk
  • Kumpulan testimoni pelanggan
  • Ulasan buku, film, atau musik
  • Resep Masakan
  • Glosarium

Mengapa Perlu Menggunakan Custom Post Type?

Di bawah ini adalah beberapa alasan untuk memanfaatkan custom post type di WordPress.

1. Mempermudah Anda dalam Menyortir Jenis Konten

Custom post type memudahkan Anda untuk menyortir jenis konten. Terutama apabila struktur situs Anda rumit.

Bayangkan jika jumlah posting Anda ratusan dan terdiri dari jenis konten yang berbeda-beda.

Anda mungkin masih dapat menggunakan search bar di daftar posting untuk mencari jenis konten tertentu. Akan tetapi, cara ini tidak efektif.

Jika sudah membuat tipe posting custom Anda dapat mengelompokkan konten sesuai jenisnya dengan mudah.

Contoh custom post type di sidebar WordPress

2. Konten Tidak Perlu Ditampilkan Secara Kronologis

Tampilan kronologis posting

Custom post type dibutuhkan apabila Anda tidak ingin jenis konten tertentu ditampilkan secara kronologis seperti posting.

Misalnya Anda memiliki situs memasak. Ada dua jenis konten yang Anda buat, yaitu resep dan tips. Karena tidak perlu menampilkan daftar resep secara kronologis, Anda dapat membuat tipe posting custom untuknya.

3. Anda Ingin Menampilkan Custom Fields Tertentu Pada Suatu Jenis Konten

Formulir custom fields WordPress

Custom post type digunakan apabila Anda membutuhkan custom fields yang selalu tampil pada jenis konten tertentu. Contoh yang umum untuk hal ini adalah halaman produk di website toko online.

Di dalam sebuah halaman produk, mungkin Anda akan informasi-informasi berikut ini:

  • Harga
  • Rating
  • Slideshow gambar produk
  • Deskripsi produk
  • Spesifikasi produk

Tentunya bagian-bagian tersebut tidak cocok ditampilkan di halaman posting. Namun, Anda akan repot jika harus memasukkan custom fields tersebut setiap kali ingin membuat halaman untuk produk baru.

Custom post type adalah solusinya. Dengannya, Anda dapat menyeragamkan custom fields untuk satu jenis posting baru.

Membuat Custom Post Type WordPress

Ada dua cara yang dapat Anda lakukan untuk membuat custom post type di WordPress. Yang pertama dan lebih mudah adalah menggunakan plugin, contohnya Custom Post Type UI.

Cara ini sangat mudah karena Anda tidak perlu melakukan koding. Selain itu, langkah-langkahnya tidak panjang karena Anda tinggal melakukan beberapa pengaturan.

Sayangnya, cara ini memiliki kekurangan. Apabila plugin yang digunakan dihapus atau dinonaktifkan, menu tipe posting custom yang ada di sidebar Dashboard akan hilang dan tidak dapat diakses.

Meskipun konten-konten tipe posting custom tetap aman di website, Anda tidak akan dapat mengeditnya atau mem-publish konten baru.

Cara kedua adalah membuat custom post type secara manual. Meskipun membutuhkan koding, tipe posting custom Anda tidak akan hilang dari Dashboard dan dapat diakses meskipun tema diganti.

Cara Membuat Custom Post Type WordPress dengan Plugin

Seperti yang telah disebutkan, salah satu plugin yang dapat Anda gunakan untuk membuat custom post type adalah Custom Post Type UI.

Memang, ada beberapa plugin serupa. Akan tetapi, kami menganjurkan Custom Post Type UI karena plugin ini di-update berkala dan dipercaya oleh lebih dari 800 ribu pengguna.

Sebelum dapat menggunakannya, pastikan Anda telah meng-install dan mengaktifkan plugin tersebut.

Meng-install Custom Post Type UI

Setelah diaktifkan, Anda dapat menemukan menu CPT UI di bagian kiri Dashboard WordPress. Klik menu tersebut dan klik Add/Edit Post Types untuk membuat custom post type pertama Anda.

Menu untuk menambahkan custom post type baru

Di menu tersebut, Anda tinggal mengisi kolom-kolom yang dibagi dalam beberapa bagian. Agar tidak bingung, kami akan menjelaskan fungsi dari masing-masing kolom tersebut.

1. Basic Settings

Basic settings Custom Post Type UI

Di bagian ini ada tiga kolom, yaitu:

  • Post Type Slug — Digunakan sebagai URL tipe posting custom yang Anda buat. Anda hanya dapat memasukkan huruf dan angka pada kolom ini. Jika ingin memasukkan spasi, gunakan tanda underscore (_).
  • Plural Label — Nama menu custom post type yang tampil di sidebar WordPress, seperti Posts dan Pages. Pastikan nama yang Anda ketikkan menggunakan kata benda jamak dalam bahasa Inggris. Jadi, jangan lupa untuk menambahkan imbuhan -s atau -es.
  • Singular Label — Ketikkan bentuk tunggal dari nama tipe posting custom Anda pada kolom ini. Nama tersebut akan ditampilkan dalam menu untuk menambahkan konten baru tipe posting custom tersebut. Misalnya, Add New Recipe.

Di bawah kolom Singular Label Anda dapat menemukan menu Auto-populate labels. Dengan meng-klik tombol ini, sebenarnya Anda tidak perlu mengisi kolom-kolom di bagian lainnya. 

Kolom lainnya akan diisi secara otomatis berdasarkan nama custom post type yang telah Anda tentukan. Kemudian, Anda tinggal klik Add Post Type agar custom post type muncul di sidebar.

Namun, Anda juga dapat mengisi kolom-kolom selanjutnya secara manual apabila ingin menentukannya sendiri. Jika ya, ikutilah langkah-langkah berikutnya.

2. Additional Labels

Additional labels Custom Post Type UI

Di bagian Additional Labels Anda dapat menentukan nama sub-menu yang ada dalam menu utama custom post type. Misalnya, Anda dapat mengganti Add Item menjadi Add Recipe. Begitu juga dengan All Item, Edit Item, dan lainnya.

3. Settings

Settings Custom Post Type UI 1

Di bagian Settings Anda dapat melakukan pengaturan terhadap custom post type yang ingin dibuat. Misalnya, Anda bisa menentukan agar halaman-halaman dalam tipe posting custom ini dapat memiliki sub-halaman.

Selain itu, Anda juga dapat membuat custom post type ini tampil atau disembunyikan dari menu navigasi website.

Scroll ke bawah, dan Anda akan menemukan checkbox untuk pengaturan tambahan. Pengaturan ini digunakan untuk menentukan fitur editor apa saja yang didukung custom post ini. Supaya nanti dapat mengaktifkan custom fields, jangan lupa untuk mencentang kotaknya.

Settings Custom Post Type UI 2

Jika Anda sudah selesai, klik Add Post Type yang ada pada bagian Basic Settings tadi.

Selamat! Anda baru saja membuat tipe posting custom pertama Anda. Namun, Anda masih perlu mengkustomisasi tampilan konten-kontennya. Langkah-langkahnya nanti kami bahas di bagian lain artikel ini.

Cara Membuat Custom Post Type WordPress Secara Manual

Membuat custom post type secara manual dapat dilakukan dengan dua cara, yaitu:

  • Mengedit file functions.php milik tema yang digunakan
  • Membuat plugin custom post type

Sebagai catatan, mengedit file functions.php memiliki kekurangan. Pengaturan tipe posting custom Anda akan hilang apabila Anda meng-update tema. Hal yang sama juga akan terjadi jika Anda mengganti tema.

Oleh karena itu, Anda perlu mengedit file functions.php setiap ada perubahan pada tema.

Mari bahas langkah-langkahnya di bawah ini.

1. Cara Membuat Custom Post Type dengan Mengedit functions.php

Sebelum memulai, Anda perlu kenal dengan file functions.php. Pada dasarnya, file ini bertindak sebagai template tema WordPress. Artinya, segala pengaturan tema terdaftar di dalam file tersebut.

Anda dapat mengaksesnya melalui Appearance > Theme Editor di Dashboard WordPress. Pada daftar Theme Files di sebelah kanan layar, pilih Theme Functions (functions.php).

File functions.php

Kode yang perlu Anda tambahkan ke dalam file ini terdiri dari tiga bagian. Agar mudah dipahami, mari bahas satu per satu bagian tersebut.

Pertama, Anda perlu meregistrasi tipe posting custom agar dapat digunakan. Untuk itu, ketikkan kode di bawah ini:

function create_posttype() {

    register_post_type( ‘recipes’,

Contoh di atas akan membuat custom post type bernama “recipes”. Nama ini otomatis menjadi slug-nya juga. Misalnya petualangkuliner.com/recipes.

Kedua, Anda akan membuat pengaturan label untuk tipe posting custom tersebut. Langkah ini seperti mengisi kolom pada bagian Additional Labels yang ada pada plugin Custom Post Type UI tadi.

Untuk itu, Anda perlu menambahkan array seperti contoh berikut ini:

function custom_post_type() {

    $labels = array(

        ‘name’                => _x( ‘Recipes’, ‘Post Type General Name’, ‘twentytwenty’ ),

        ‘singular_name’       => _x( ‘Recipe’, ‘Post Type Singular Name’, ‘twentytwenty’ ),

        ‘menu_name’           => __( ‘Recipes’, ‘twentytwenty’ ),

        ‘parent_item_colon’   => __( ‘Parent Recipe’, ‘twentytwenty’ ),

        ‘all_items’           => __( ‘All Recipes’, ‘twentytwenty’ ),

        ‘view_item’           => __( ‘View Recipe’, ‘twentytwenty’ ),

        ‘add_new_item’        => __( ‘Add New Recipe’, ‘twentytwenty’ ),

        ‘add_new’             => __( ‘Add New’, ‘twentytwenty’ ),

        ‘edit_item’           => __( ‘Edit Recipe’, ‘twentytwenty’ ),

        ‘update_item’         => __( ‘Update Recipe’, ‘twentytwenty’ ),

        ‘search_items’        => __( ‘Search Recipe’, ‘twentytwenty’ ),

        ‘not_found’           => __( ‘Not Found’, ‘twentytwenty’ ),

        ‘not_found_in_trash’  => __( ‘Not found in Trash’, ‘twentytwenty’ ),

    );

Terakhir, Anda akan menggunakan array lagi untuk menentukan argumen yang digunakan tipe posting custom. Kegunaan array ini sama dengan bagian Settings di pengaturan plugin yang dibahas sebelumnya.

$args = array(

        ‘label’               => __( ‘recipes’, ‘twentytwenty’ ),

        ‘description’         => __( ‘Recipe entries’, ‘twentytwenty’ ),

        ‘labels’              => $labels,

        ‘supports’            => array( ‘title’, ‘editor’, ‘excerpt’, ‘author’, ‘thumbnail’, ‘comments’, ‘revisions’, ‘custom-fields’, ),

        ‘taxonomies’          => array( ‘genres’ ),

        ‘hierarchical’        => false,

        ‘public’              => true,

        ‘show_ui’             => true,

        ‘show_in_menu’        => true,

        ‘show_in_nav_menus’   => true,

        ‘show_in_admin_bar’   => true,

        ‘menu_position’       => 5,

        ‘can_export’          => true,

        ‘has_archive’         => true,

        ‘exclude_from_search’ => false,

        ‘publicly_queryable’  => true,

        ‘capability_type’     => ‘post’,

        ‘show_in_rest’ => true,

    );

    register_post_type( ‘recipes’, $args );

}

add_action( ‘init’, ‘custom_post_type’, 0 );

Setelah memasukkan baris-baris kode di atas simpan perubahan pada file functions.php dengan meng-klik Update File di bagian bawah halaman editor tema.

Dengan demikian, Anda telah berhasil membuat tipe posting custom dengan mengedit file functions.php.

Baca Juga: Cara Membuat Template WordPress Responsive dengan HTML5

2. Membuat Plugin untuk Custom Post Type

Seperti yang tadi disebutkan, custom post type yang dibuat dengan mengedit file functions.php tidak bersifat permanen.

Solusinya adalah dengan membuat plugin sendiri. Meskipun terdengar rumit, cara kedua ini tidak jauh berbeda dengan mengedit file tema. Hanya saja, Anda perlu membuat filenya sendiri.

Sebelum memulai, pastikan Anda memiliki akses ke cPanel. Anda dapat mengaksesnya dengan mengetikkan url website dan diikuti dengan /cpanel. Misalnya websiteku.com/cpanel.

Akses ke cPanel dibutuhkan karena Anda perlu membuat folder dan file plugin di dalam direktori website.

Apabila sudah berhasil mengaksesnya, halaman login cPanel akan muncul. Gunakan username dan password yang diberikan penyedia wordpress hosting Indonesia Anda saat pertama kali membeli layanan.

Jika sudah siap, mari simak langkah-langkah membuat tipe posting custom di bawah ini.

1. Akses File Manager cPanel

Carilah menu file manager di Dashboard cPanel. Supaya lebih cepat, Anda juga dapat mencarinya dengan menggunakan search bar yang ada di bagian atas Dashboard.

File manager di cPanel

2. Buat Folder untuk Plugin

Setelah masuk ke file manager, Anda perlu mengakses folder plugins. Caranya, cari folder public_html di bagian kiri layar. Kemudian, buka folder wp-content di dalamnya.

Membuka folder plugins di file manager cPanel

Buatlah folder untuk plugin tipe posting custom Anda di dalam folder plugins. Agar Anda dapat mengenali folder ini dengan mudah di antara plugin-plugin lainnya, berilah nama yang jelas dan sesuai. custom-post-type, misalnya.

Untuk menambahkan folder baru, klik tombol + Folder yang ada pada toolbar di bagian atas layar.

Tombol untuk menambahkan folder baru di file manager cPanel

3. Buat File Plugin

Sekarang Anda perlu membuat file yang akan digunakan untuk plugin tipe posting custom. Klik dua kali pada folder yang baru saja Anda buat, lalu klik tombol + File di toolbar file manager. Letaknya di sebelah kiri tombol + Folder tadi.

Anda dapat menggunakan nama yang sama untuk file ini, yaitu custom-post-type.

Setelah file ini dibuat, Anda perlu membuatnya menjadi skrip php agar dapat dijalankan. Untuk itu, klik kanan pada file tersebut dan pilih Edit.

Menu edit file di file manager cPanel

Kemudian, tambahkan kode berikut ini pada bagian atas file editor:

<?php

/*

Plugin Name: Custom Post Type

Description: This plugin makes a custom post type

Author: Your Name

*/

Plugin Name, Description, Author merupakan komentar di dalam file ini untuk menjelaskan kegunaannya. Mengganti ketiga informasi tersebut tidak akan mengubah fungsi file plugin ini. Kode untuk menentukan fungsinya akan dibahas pada bagian selanjutnya.

4. Memberikan Fungsi pada Plugin

Agar plugin Anda dapat bekerja, Anda perlu menambahkan action hook init dan function di dalam file-nya. Untuk itu, ketikkan dua baris kode berikut ini:

add_action( ‘init’, ‘register_recipe_post_type’ );

function register_recipe_post_type() {

Perlu Anda ingat bahwa nama tipe posting custom harus disebut pada kedua baris ini. Sebagai contoh, register_recipe_post_type akan menghasilkan post type bernama “recipe”. Seperti di cara sebelumnya, nama jenis posting juga menjadi slug-nya.

5. Menentukan array Label

Seperti ketika Anda membuat custom post di file functions.php, Anda juga mengetikkan kode yang digunakan untuk menentukan label.

Tambahkan kode di bawah ini untuk melakukannya:

$labels = array(

    ‘name’               => __( ‘Recipes’ ),

    ‘singular_name’      => __( ‘Recipe’ ),

    ‘add_new’            => __( ‘Add New Recipe’ ),

    ‘add_new_item’       => __( ‘Add New Recipe’ ),

    ‘edit_item’          => __( ‘Edit Recipe’ ),

    ‘new_item’           => __( ‘New Recipe’ ),

    ‘all_items’          => __( ‘All Recipes’ ),

    ‘view_item’          => __( ‘View Recipe’ ),

    ‘search_items’       => __( ‘Search Recipes’ ),

    ‘featured_image’     => ‘Recipe Image’,

    ‘set_featured_image’ => ‘Add Recipe Image’

  );

6. Menentukan array Argumen

Selain label, Anda juga harus menentukan argumen. Kodenya seperti di bawah ini:

$args = array(

    ‘labels’            => $labels,

    ‘description’       => ‘Holds our recipes’,

    ‘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,

    ‘has_archive’       => true,

    ‘query_var’         => ‘recipe’

  );

  register_post_type( ‘recipe’, $args);

}

Jika sudah, simpan file plugin dengan meng-klik Save Changes di pojok kanan atas file editor.

Kini Anda sudah dapat membuat custom post type dan mengakses daftarnya melalui sidebar Dashboard.

Cara Menampilkan Custom Post Type WordPress di Menu Navigasi

Daftar custom post type tidak langsung dapat ditampilkan di menu navigasi seperti halaman utama (home), halaman blog, kontak, dan lain-lain.

Untuk memunculkannya, klik Appearance > Menus di sidebar Dashboard.

Tombol menus di sidebar WordPress

Pada bagian Add menu items klik tab Custom links

Membuat set menu baru di WordPress

Kemudian, ketikkan URL tipe posting custom dan teks yang ingin ditampilkan sebagai menu. Jika sudah, klik Add to Menu untuk menyimpan.

Cara Membuat Tampilan Tersendiri untuk Halaman Daftar Posting Custom Post Type

Langkah ini tidak bersifat wajib, tapi bagi Anda yang paham koding dapat membuat tampilan berbeda untuk halaman daftar posting custom post type. Caranya dengan membuat template tersendiri.

Pertama, buatlah file PHP baru di direktori tema yang Anda gunakan. Untuk mengakses daftar direktori tema, gunakan file manager cPanel dan masuk ke public_html > wp-content > themes.

Di dalam direktori ini Anda akan menemukan file archive.php. Salin isi file-nya, lalu buat file baru dengan nama jenis posting custom. Misalnya archive-recipe.php.

Selanjutnya Anda dapat memasukkan salinan kode dari file sebelumnya dan mengeditnya sesuai kebutuhan.

Sama seperti untuk halaman daftar posting, Anda juga dapat membuat tampilan berbeda untuk konten tipe posting custom. Bedanya, file asli yang Anda butuhkan adalah single.php yang berada di direktori tema. Beri juga nama file yang sesuai, seperti single-recipe.php.

Cara Menampilkan Daftar Custom Post Type di Halaman Utama (Home)

Di awal artikel telah disebutkan bahwa custom post type tidak akan muncul di antara daftar posting di halaman utama. Akan tetapi, Anda tetap dapat menampilkannya.

Salin dan tambahkan kode di bawah ini ke dalam file functions.php milik tema yang Anda gunakan untuk melakukannya:

add_action( ‘pre_get_posts’, ‘add_my_post_types_to_query’ );

function add_my_post_types_to_query( $query ) {

    if ( is_home() && $query->is_main_query() )

        $query->set( ‘post_type’, array( ‘post’, ‘recipes’ ) );

    return $query;

}

Jangan lupa untuk mengganti recipes di bagian $query->set dengan nama tipe posting custom Anda.

Sudah Siap Membuat Custom Post Type Pertama Anda?

Membuat custom post type tidak terlalu rumit, bukan? Di artikel ini Anda telah diajak untuk mempelajari tiga cara untuk melakukannya, yaitu:

  • Menggunakan plugin Custom Post Type UI.
  • Mengedit file functions.php tema.
  • Membuat plugin custom post type

Selain itu, Anda juga belajar untuk menampilkan tipe posting custom di menu navigasi dan di halaman utama website.

Kami harap artikel ini dapat membantu Anda. Jika ada pertanyaan, jangan sungkan untuk meninggalkan komentar pada kolom yang tersedia di bawah.

0
Aldwin Nayoan Aldwin is a content writer at Niagahoster. Specializing in web hosting and WordPress, he is eager to help people uplevel their business on the internet. Apart from being a tech junkie, Aldwin likes fiction and photography.
[{"code":""
[{"code":""
"label":"Coba Lagi"
"label":"Coba Lagi"
"win":false}
"win":false}
{"code":"HOSTING50"
{"code":"HOSTING50"
"label":"Extra Diskon 50rb "
"label":"Extra Diskon 50rb "
"win":true}
"win":true}
{"code":"HOSTING20"
{"code":"HOSTING20"
"label":"Extra Diskon 20rb "
"label":"Extra Diskon 20rb "
"win":true}
"win":true}
{"code":"HOSTING100"
{"code":"HOSTING100"
"label":"Extra Diskon 100rb "
"label":"Extra Diskon 100rb "
"win":true}
"win":true}
{"code":""
{"code":""
"label":"Belum Beruntung"
"label":"Belum Beruntung"
"win":false}
"win":false}
{"code":"HOSTING20"
{"code":"HOSTING20"
"label":"Extra Diskon 20rb "
"label":"Extra Diskon 20rb "
"win":true}
"win":true}
{"code":""
{"code":""
"label":"Coba Lagi"
"label":"Coba Lagi"
"win":false}
"win":false}
{"code":"HOSTING50"
{"code":"HOSTING50"
"label":"Extra Diskon 50rb "
"label":"Extra Diskon 50rb "
"win":true}
"win":true}
{"code":"HOSTING20"
{"code":"HOSTING20"
"label":"Extra Diskon 20rb "
"label":"Extra Diskon 20rb "
"win":true}
"win":true}
{"code":"FREESHIPPING"
{"code":"FREESHIPPING"
"label":"Coba Lagi"
"label":"Coba Lagi"
"win":false}
"win":false}
{"code":""
{"code":""
"label":"Sedikit Lagi! "
"label":"Sedikit Lagi! "
"win":false}
"win":false}
{"code":"HOSTING50"
{"code":"HOSTING50"
"label":"Extra Diskon 50rb "
"label":"Extra Diskon 50rb "
"win":true}]
"win":true}]