cara membuat custom post types di WordPress

Seringkali orang keliru mengelompokkan WordPress hanya sebagai platform blogging. Selama beberapa tahun terakhir, WordPress telah berkembang menjadi sistem manajemen konten yang hebat. Secara default WordPress hadir dengan post dan pages sebagai tipe konten utama. Namun Anda dapat membuat sebanyak mungkin jenis konten khusus yang Anda suka, dan jenis konten khusus ini disebut sebagai Jenis Pos Khusus. Pada artikel ini, kami akan menunjukkan cara membuat custom post types di WordPress. Kami juga akan menunjukkan cara menggunakannya seperti pro.

Apa itu Custom Post Type di WordPress?

Jenis pos khusus adalah jenis konten seperti pos dan halaman. Sejak WordPress berevolusi dari platform blogging sederhana menjadi CMS yang tangguh, istilah postingan menempel padanya. Namun, jenis posting bisa berupa konten apa pun. Secara default, WordPress dilengkapi dengan jenis posting ini:

  • Pos
  • Halaman
  • Lampiran
  • Revisi
  • Menu Nav

Anda dapat membuat jenis posting kustom Anda sendiri dan memanggil mereka apa pun yang Anda inginkan. Misalnya jika Anda menjalankan situs ulasan film, Anda mungkin ingin membuat jenis ulasan ulasan. Jenis pos ini dapat memiliki bidang khusus yang berbeda dan bahkan struktur kategori kustomnya sendiri. Contoh lain dari jenis posting adalah: Portofolio, Testimonial, Produk, dll.

Membuat Custom Post Type - Cara Mudah
Cara termudah untuk membuat custom post type di WordPress adalah dengan menggunakan plugin. Cara ini dianjurkan untuk pemula karena aman dan super mudah.

Hal pertama yang perlu Anda lakukan adalah menginstal dan mengaktifkan plugin Custom Post Type UI. Setelah aktivasi, plugin akan menambahkan item menu baru di menu admin WordPress Anda yang disebut CPT UI.

Sekarang masuk ke CPT UI »Add New untuk membuat custom post type baru.


Plugin Custom Post Type UI juga memungkinkan Anda membuat taksonomi khusus. Inilah sebabnya mengapa halaman jenis posting Custom baru ditambahkan dibagi menjadi dua kolom. Di sebelah kiri Anda, Anda memiliki formulir yang perlu Anda isi untuk membuat jenis posting kustom Anda. Di sebelah kanan Anda, Anda memiliki formulir untuk membuat taksonomi khusus jika Anda memerlukannya.

Di kolom jenis kolom khusus, pertama Anda perlu memberi nama untuk jenis pos khusus Anda. Nama ini tidak boleh melebihi lebih dari 20 karakter, mis. film, resep, kesepakatan, glosarium, dll.


Di kolom berikutnya, Anda perlu memberi label untuk jenis posting khusus Anda. Label ini akan muncul di bilah admin WordPress Anda seperti halnya tulisan dan halaman. Perlu juga jamak untuk masuk akal. misalnya Film, Resep, Penawaran, Glosarium, dll.

Setelah itu Anda perlu memberikan bentuk tunggal untuk label Anda. Bentuk tunggal ini akan digunakan oleh WordPress untuk menunjukkan petunjuk dan elemen antarmuka pengguna lainnya.

Terakhir masukkan deskripsi untuk jenis posting kustom Anda. Deskripsi ini hanya digunakan untuk menjelaskan apa jenis posting Anda.

Sekarang Anda bisa mengklik tombol 'Create Custom Post Type' untuk menambahkan jenis posting kustom baru Anda. Itu saja.

Anda juga dapat mengklik link Opsi Label Lanjutan dan Tautan Lanjutan untuk menyesuaikan lebih banyak pilihan untuk jenis posting kustom Anda.

Membuat Custom Post Type secara manual
Masalah dengan menggunakan plugin adalah bahwa jenis posting kustom Anda akan hilang saat plugin dinonaktifkan. Data apa pun yang ada pada jenis pos khusus akan tetap ada di sana, namun jenis pos ubahsuaian Anda tidak terdaftar dan tidak dapat diakses dari area admin.

Jika Anda bekerja di situs klien dan tidak ingin memasang plugin lain, Anda dapat membuat jenis posting kustom Anda secara manual dengan menambahkan kode yang diperlukan pada file functions.php tema Anda atau di plugin khusus situs (lihat: Postingan Khusus Jenis Debate functions.php atau Plugin).

Pertama, kami akan menunjukkan contoh kerja yang cepat dan lengkap sehingga Anda bisa mengerti cara kerjanya. Lihatlah kode ini:
// Our custom post type function
function create_posttype() {

    register_post_type( 'movies',
    // CPT Options
        array(
            'labels' => array(
                'name' => __( 'Movies' ),
                'singular_name' => __( 'Movie' )
            ),
            'public' => true,
            'has_archive' => true,
            'rewrite' => array('slug' => 'movies'),
        )
    );
}
// Hooking up our function to theme setup
add_action( 'init', 'create_posttype' );
Apa kode ini adalah bahwa ia mencatat jenis tulisan 'film' dengan serangkaian argumen. Argumen ini adalah pilihan dari jenis tulisan khusus kami. Array ini memiliki dua bagian, bagian pertama adalah label, yang merupakan array. Bagian kedua berisi argumen lain seperti visibilitas publik, memiliki arsip, dan slug yang akan digunakan di URL untuk jenis posting ini.

Sekarang mari kita lihat potongan kode rinci yang menambahkan lebih banyak pilihan pada jenis posting kustom Anda.
/*
* Creating a function to create our CPT
*/

function custom_post_type() {

// Set UI labels for Custom Post Type
    $labels = array(
        'name'                => _x( 'Movies', 'Post Type General Name', 'twentythirteen' ),
        'singular_name'       => _x( 'Movie', 'Post Type Singular Name', 'twentythirteen' ),
        'menu_name'           => __( 'Movies', 'twentythirteen' ),
        'parent_item_colon'   => __( 'Parent Movie', 'twentythirteen' ),
        'all_items'           => __( 'All Movies', 'twentythirteen' ),
        'view_item'           => __( 'View Movie', 'twentythirteen' ),
        'add_new_item'        => __( 'Add New Movie', 'twentythirteen' ),
        'add_new'             => __( 'Add New', 'twentythirteen' ),
        'edit_item'           => __( 'Edit Movie', 'twentythirteen' ),
        'update_item'         => __( 'Update Movie', 'twentythirteen' ),
        'search_items'        => __( 'Search Movie', 'twentythirteen' ),
        'not_found'           => __( 'Not Found', 'twentythirteen' ),
        'not_found_in_trash'  => __( 'Not found in Trash', 'twentythirteen' ),
    );
   
// Set other options for Custom Post Type
   
    $args = array(
        'label'               => __( 'movies', 'twentythirteen' ),
        'description'         => __( 'Movie news and reviews', 'twentythirteen' ),
        'labels'              => $labels,
        // Features this CPT supports in Post Editor
        'supports'            => array( 'title', 'editor', 'excerpt', 'author', 'thumbnail', 'comments', 'revisions', 'custom-fields', ),
        // You can associate this CPT with a taxonomy or custom taxonomy.
        'taxonomies'          => array( 'genres' ),
        /* A hierarchical CPT is like Pages and can have
        * Parent and child items. A non-hierarchical CPT
        * is like Posts.
        */
        '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'     => 'page',
    );
   
    // Registering your Custom Post Type
    register_post_type( 'movies', $args );

}

/* Hook into the 'init' action so that the function
* Containing our post type registration is not
* unnecessarily executed.
*/

add_action( 'init', 'custom_post_type', 0 );
Seperti yang Anda lihat, kami telah menambahkan lebih banyak pilihan ke jenis posting khusus dengan kodenya. Ini akan menambahkan lebih banyak fitur seperti dukungan untuk revisi, gambar unggulan, bidang kustom, dll.

Kami juga menghubungkan jenis pos khusus ini dengan taksonomi khusus yang disebut genre. Perhatikan juga bagian di mana kita telah menetapkan nilai hierarkis menjadi salah. Jika Anda ingin jenis posting kustom Anda berperilaku seperti Pages, Anda dapat mengatur nilai ini menjadi true.

Juga perhatikan penggunaan berulang dua puluh tiga belas, ini disebut domain teks. Jika tema Anda terjemahan dan Anda ingin jenis posting kustom Anda diterjemahkan, maka Anda perlu menyebutkan domain teks yang digunakan oleh tema Anda. Anda dapat menemukan domain teks tema Anda di dalam file style.css di direktori tema Anda. Domain teks akan disebutkan di header file.

Menampilkan Jenis Pos Ubahsuaian di Situs Anda
WordPress hadir dengan dukungan untuk menampilkan jenis posting kustom Anda. Setelah Anda menambahkan beberapa item ke dalam jenis posting kustom baru Anda, sekarang saatnya menampilkannya di situs Anda.

Ada beberapa metode yang dapat Anda gunakan, masing-masing memiliki manfaat tersendiri.
Menampilkan Custom Post Type Menggunakan Template Arsip Default

Pertama Anda bisa langsung ke Appearance »Menus dan menambahkan custom link ke menu Anda. Tautan khusus ini adalah tautan ke jenis pos khusus Anda. Jika Anda menggunakan permalinks SEO friendly maka URL CPT Anda kemungkinan besar akan seperti ini:
http://example.com/movies
Jika Anda tidak menggunakan permalink SEO friendly, maka URL jenis posting kustom Anda akan menjadi seperti ini:
http://example.com/?post_type=movies
Ganti example.com dengan nama domain dan film Anda sendiri dengan nama jenis posting kustom Anda. Simpan menu Anda dan kemudian kunjungi front-end dari situs Anda. Anda akan melihat menu baru yang Anda tambahkan, dan saat Anda mengkliknya, Anda akan menampilkan halaman arsip tipe posting kustom Anda menggunakan file template archive.php dalam tema Anda.

Menggunakan Template Kustom untuk Arsip CPT dan Entri Tunggal
Jika Anda tidak menyukai tampilan halaman arsip untuk jenis posting kustom Anda, Anda dapat menggunakan template khusus untuk arsip jenis pos kustom. Untuk melakukan itu semua yang perlu Anda lakukan adalah membuat file baru di direktori tema Anda dan beri nama archive-movies.php. Ganti film dengan nama jenis pos khusus Anda.

Untuk memulai, Anda dapat menyalin isi file archive.php tema Anda ke dalam template archive-movies.php dan kemudian mulai memodifikasi untuk memenuhi kebutuhan Anda. Sekarang setiap kali halaman arsip untuk jenis posting kustom Anda diakses, template ini akan digunakan untuk menampilkannya.

Demikian pula, Anda juga dapat membuat template khusus untuk tampilan entri satu jenis pos Anda. Untuk melakukan itu Anda perlu membuat single-movies.php di direktori tema Anda. Jangan lupa ganti film dengan nama custom post type.

Anda bisa memulai dengan menyalin isi template single.php tema Anda ke dalam template single-movies.php dan kemudian mulai memodifikasi untuk memenuhi kebutuhan Anda.

Menampilkan Jenis Pos Kustom di Halaman Depan
Salah satu keuntungan menggunakan jenis pos khusus adalah membuat jenis konten khusus Anda jauh dari pos reguler Anda. Namun, jika Anda ingin menampilkannya di antara pos reguler Anda, Anda dapat melakukannya dengan menambahkan kode ini ke file functions.php tema Anda atau plugin khusus situs:
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', 'movies' ) );
    return $query;
}
Jangan lupa ganti film dengan tipe postingan anda.

Memeriksa Jenis Pos Khusus
Jika Anda sudah familiar dengan coding dan ingin menjalankan query loop di template Anda, maka berikut adalah cara melakukannya (Terkait: Apa itu Loop?).

Dengan melakukan query database, Anda dapat mengambil item dari jenis posting kustom.
<?php
$args = array( 'post_type' => 'movies', 'posts_per_page' => 10 );
$the_query = new WP_Query( $args );
?>
<?php if ( $the_query->have_posts() ) : ?>
<?php while ( $the_query->have_posts() ) : $the_query->the_post(); ?>
<h2><?php the_title(); ?></h2>
<div class="entry-content">
<?php the_content(); ?>
</div>
<?php wp_reset_postdata(); ?>
<?php else:  ?>
<p><?php _e( 'Sorry, no posts matched your criteria.' ); ?></p>
<?php endif; ?>
Dalam kode ini, pertama kita telah mendefinisikan jenis posting dan posting per halaman dalam argumen untuk kelas WP_Query baru kita. Setelah itu kami menjalankan kueri kami, mengambil kiriman dan menampilkannya di dalam lingkaran.

Menampilkan Jenis Pos Kustom di Widget
Anda akan melihat bahwa ada widget default di WordPress untuk menampilkan tulisan terbaru. Tapi widget ini tidak memungkinkan Anda untuk memilih jenis posting kustom. Bagaimana jika Anda ingin menampilkan entri terbaru dari jenis tulisan yang baru Anda buat di widget? Ada cara mudah untuk melakukan ini.

Hal pertama yang perlu Anda lakukan adalah menginstal dan mengaktifkan plugin Widget Posting Utama. Setelah aktivasi, cukup masuk ke Appearance »Widgets dan seret dan lepaskan widget Ultimate Posts ke sidebar.

Widget yang hebat ini akan memungkinkan Anda menampilkan posting terbaru dari jenis posting. Anda juga bisa menampilkan post excerpt dengan link read more atau bahkan menampilkan gambar fitur disamping judul posting. Konfigurasikan widget dengan memilih opsi yang Anda inginkan dan dengan memilih jenis posting kustom Anda. Setelah itu simpan perubahan Anda dan lihat widget beraksi di situs Anda.

Lebih Lanjut Custom Post Type Tweaks
Masih banyak lagi yang bisa Anda lakukan dengan jenis posting kustom Anda. Anda dapat belajar menambahkan jenis posting kustom Anda di RSS feed utama atau membuat umpan terpisah untuk setiap jenis posting kustom. Jika Anda menggunakan sistem komentar Disqus, maka checkout bagaimana cara menonaktifkan disqus untuk custom post types di WordPress.

Kami berharap artikel ini membantu Anda mempelajari cara membuat custom post types di WordPress.



close