Membuat Jenis Posting Kustom

Diterbitkan: 2016-08-23

WordPress belum menjadi platform “ hanya sebuah blogging ” untuk beberapa waktu sekarang. Salah satu fitur utama yang membantunya berubah menjadi sistem manajemen konten (CMS) yang tepat adalah Custom Post Types .

Ini adalah artikel pertama dari seri 3 bagian tentang topik jenis posting kustom (CPT). Ini adalah topik yang akan kita bahas dalam dua berikutnya:

  • Taksonomi Kustom
  • Menampilkan jenis posting khusus (templat dan kueri)

Namun untuk saat ini, mari kita lihat lebih dekat jenis kiriman khusus dan cara menyiapkannya.

Apa itu jenis kiriman khusus?

Secara default WordPress menggunakan jenis posting ini:

  • Pos
  • Halaman
  • Lampiran
  • Revisi
  • item menu

Jadi, apa itu jenis posting khusus? Jenis posting khusus pada dasarnya adalah posting WordPress dengan parameter yang ditentukan khusus (bidang khusus, kategori khusus/struktur tag, ...). Contoh klasik dari jenis posting kustom adalah: buku, ulasan, testimonial, anggota tim, portofolio, dan sebagainya. Tetapi Anda dapat menggunakannya untuk apa pun yang menunjukkan jenis konten yang Anda buat.

Mengapa Anda menggunakan satu?

Anda bisa menggunakan posting WP biasa dan menggunakan kategori dan tag, untuk memisahkan "jenis posting" yang berbeda. Tapi ini tidak ideal dan dapat menyebabkan komplikasi di kemudian hari. Berikut adalah beberapa alasan mengapa Anda mungkin ingin menggunakan jenis posting khusus:

  • Jika Anda ingin memisahkan beberapa konten dari jenis posting lain yang tersedia di WordPress
  • Anda memerlukan beberapa bidang khusus yang eksklusif untuk konten yang ingin Anda posting
  • Anda perlu menampilkan konten secara berbeda dari jenis posting lainnya (seperti posting atau halaman)

Katakanlah Anda sedang menulis blog makanan. Anda biasanya memposting kritik restoran, tetapi Anda juga ingin memposting resep Anda sendiri. Resep akan menjadi jenis kiriman khusus yang sempurna , karena Anda mungkin perlu memiliki tata letak yang berbeda dari kiriman biasa. Mungkin juga beberapa bidang khusus, seperti bahan, misalnya. Dengan pengenalan resep CPT , bagian blog hanya akan berisi posting biasa Anda, dan resep Anda akan memiliki bagiannya sendiri (halaman arsip resep sendiri). Ini akan memudahkan pengunjung yang hanya ingin melihat resep Anda.

Dalam seri artikel ini, kami akan membuat CPT testimonial untuk tema Shaka kami. Katakanlah seorang pengguna ingin memiliki halaman di mana mereka dapat menampilkan setiap testimonial klien. Dia ingin menambahkan beberapa bidang kustom ke jenis posting kustom ini dan dia juga ingin tata letak yang berbeda untuk menampilkan testimonial ini. Pertama-tama mari kita lihat cara mendaftarkan jenis posting khusus.

Bagaimana Anda bisa membuat jenis posting khusus?

Ada dua cara untuk membuat jenis posting kustom baru.

Opsi pertama adalah menggunakan plugin yang akan mendaftarkan jenis posting khusus untuk Anda. Metode ini bagus untuk pengguna yang tidak terbiasa dengan kode PHP. Anda hanya memasukkan detail yang diperlukan dan plugin akan melakukan sisanya.

Metode kedua adalah mendaftarkan jenis posting kustom secara manual . Itu berarti Anda harus menulis beberapa kode, tetapi jangan panik, ini cukup sederhana dan saya juga akan menunjukkan trik yang rapi.

Buat jenis posting khusus dengan plugin – cara mudah

Jika Anda ingin dengan cepat dan mudah menambahkan jenis posting khusus ke situs Anda, maka Anda harus menggunakan plugin yang menawarkan fungsi tersebut. Mungkin plugin yang paling populer untuk melakukannya adalah Custom Post Type UI, gratis dan mudah digunakan. Mari kita mengaturnya:

  1. Instal dan aktifkan plugin Custom Post Type UI dari dashboard wp-admin Anda,
  2. Setelah Anda mengaktifkan plugin, item menu admin CPT UI akan tersedia. Pergi ke CPT UI -> Tambah/Edit Jenis Posting,
  3. Di sini Anda akan menemukan banyak pengaturan yang dapat Anda terapkan untuk menyesuaikan CPT Anda. Kami tidak akan membahas semuanya secara rinci dalam artikel ini. Tetapi ada ikon tooltip di sebelah setiap label pengaturan untuk menjelaskan apa yang dilakukan setiap pengaturan. Mari kita atur hal-hal yang kita butuhkan untuk use case kita (testimonial CPT),
  4. Masukkan slug: testimonial, label jamak: Testimonial dan label tunggal: Testimonial,
  5. Anda dapat mengklik tombol Edit label tambahan untuk mengatur label yang lebih akurat. Tapi kita bisa melewati ini dan kembali jika kita melihat masalah nanti,
  6. Semua pengaturan default ok untuk kasus penggunaan kami, kami hanya akan menambahkan Dukungan untuk Bidang Kustom (pilih kotak centang Bidang Kustom di bagian Dukungan),
  7. Klik Add Post Type, untuk membuat custom post type.

Segera setelah kami membuat jenis posting khusus, item menu dasbor Testimonial wp-admin baru muncul. Kami sekarang dapat membuat testimonial baru dengan semua bidang yang dipilih saat kami membuat jenis posting khusus (Judul, Editor, Gambar unggulan, dan bidang Khusus).

CPT - Tambahkan Testimonial baru

Kami juga dapat mengatur taksonomi ke jenis pos kustom ini, tetapi kami akan membahasnya di artikel berikutnya .

Buat jenis posting khusus secara manual – melibatkan pengkodean

Anda mungkin bertanya pada diri sendiri: Jika Anda dapat membuat jenis posting khusus dengan plugin, mengapa ada orang yang ingin membuatnya secara manual, dengan kode?

Kemampuan untuk membuatnya dengan plugin tentu saja sangat nyaman , tetapi ada beberapa kasus yang ingin Anda lakukan melalui kode. Misalnya, jika Anda sedang mengembangkan situs untuk klien Anda dan Anda tidak ingin klien dapat mengubah pengaturan ini, atau jika Anda tidak ingin memasang satu plugin lagi ke situsnya. Juga, jika Anda ingin membuat tema (atau tema anak) untuk digunakan di banyak situs, lebih mudah untuk mendaftarkan jenis posting khusus dalam kode daripada mengulangi langkah-langkah plugin untuk setiap situs. Ada beberapa pro dan kontra untuk setiap metode, jadi Anda harus memutuskan apa yang terbaik untuk kasus Anda.

Kode untuk membuat jenis posting kustom dapat ditempatkan langsung di tema (di functions.php ). Atau, Anda dapat membuat plugin baru dan meletakkan kode CPT di sana. Ini juga merupakan pertanyaan yang memecah belah di komunitas WordPress. Satu sisi mengatakan bahwa itu harus ditempatkan di plugin , sehingga jika Anda mengubah tema, data CPT tetap (tetapi hasilnya tidak bergaya dan tidak terlihat bagus di tema baru). Dan pihak lain berpikir bahwa lebih baik menempatkan kode CPT langsung di tema , karena tema itu spesifik dan juga ditata khusus untuk tema ini.

Secara pribadi, saya pikir selalu lebih baik untuk memisahkan gaya (tema) dari fungsionalitas (plugin) sehingga membuat plugin baru untuk pendaftaran CPT adalah pilihan yang lebih baik . Menambahkan gaya ke tema baru lebih mudah untuk membuat output CPT terlihat bagus daripada kehilangan data CPT karena beralih ke tema baru.

Daftarkan jenis posting khusus dengan kode

Saya memang menjanjikan trik yang rapi, bukan? Nah, sebenarnya Anda tidak perlu menulis kode untuk bisa mendaftarkan custom post type via code. Ini mungkin terdengar aneh, tapi itu benar. Anda dapat menggunakan alat ini di generatewp.com untuk menghasilkan kode yang diperlukan untuk pendaftaran CPT. Yang harus Anda lakukan adalah memasukkan beberapa data dan menghasilkan kode. Saya melakukan ini untuk kasus penggunaan testimonial kami dan inilah yang keluar:

 // Register Custom Post Type function custom_post_type_testimonials() { $labels = array( 'name' => _x( 'Testimonials', 'Post Type General Name', 'text_domain' ), 'singular_name' => _x( 'Testimonial', 'Post Type Singular Name', 'text_domain' ), 'menu_name' => __( 'Testimonials', 'text_domain' ), 'name_admin_bar' => __( 'Testimonials', 'text_domain' ), 'archives' => __( 'Item Archives', 'text_domain' ), 'parent_item_colon' => __( 'Parent Item:', 'text_domain' ), 'all_items' => __( 'All Items', 'text_domain' ), 'add_new_item' => __( 'Add New Item', 'text_domain' ), 'add_new' => __( 'Add New', 'text_domain' ), 'new_item' => __( 'New Item', 'text_domain' ), 'edit_item' => __( 'Edit Item', 'text_domain' ), 'update_item' => __( 'Update Item', 'text_domain' ), 'view_item' => __( 'View Item', 'text_domain' ), 'search_items' => __( 'Search Item', 'text_domain' ), 'not_found' => __( 'Not found', 'text_domain' ), 'not_found_in_trash' => __( 'Not found in Trash', 'text_domain' ), 'featured_image' => __( 'Featured Image', 'text_domain' ), 'set_featured_image' => __( 'Set featured image', 'text_domain' ), 'remove_featured_image' => __( 'Remove featured image', 'text_domain' ), 'use_featured_image' => __( 'Use as featured image', 'text_domain' ), 'insert_into_item' => __( 'Insert into item', 'text_domain' ), 'uploaded_to_this_item' => __( 'Uploaded to this item', 'text_domain' ), 'items_list' => __( 'Items list', 'text_domain' ), 'items_list_navigation' => __( 'Items list navigation', 'text_domain' ), 'filter_items_list' => __( 'Filter items list', 'text_domain' ), ); $args = array( 'label' => __( 'Testimonials', 'text_domain' ), 'labels' => $labels, 'supports' => array( 'title', 'editor', 'thumbnail', 'custom-fields' ), 'hierarchical' => false, 'public' => true, 'show_ui' => true, 'show_in_menu' => true, 'menu_position' => 5, 'show_in_admin_bar' => true, 'show_in_nav_menus' => true, 'can_export' => true, 'has_archive' => true, 'exclude_from_search' => false, 'publicly_queryable' => true, 'capability_type' => 'page', ); register_post_type( 'testimonials', $args ); } add_action( 'init', 'custom_post_type_testimonials' );

… Kode PHP yang benar- benar valid yang dapat Anda gunakan dalam proyek Anda. Seperti yang telah dibahas sebelumnya, Anda dapat memasukkan kode ini ke dalam plugin yang baru dibuat, atau Anda dapat memasukkannya ke dalam file functions.php tema. Demi kesederhanaan saya memilih yang terakhir. Saya meletakkan kode ini di file functions.php dari tema, dan menu Testimonial wp-admin muncul dan sekarang saya dapat membuat testimonial baru (seperti pada metode plugin di atas).

Anda juga dapat mengatur ikon yang berbeda untuk jenis posting kustom Anda, yang akan ditampilkan di menu wp-admin. Anda hanya perlu menambahkan baris ini dalam array $args: 'menu_icon' => 'dashicons-businessman' . Anda dapat menemukan daftar semua kemungkinan ikon di sini: Dashicons WordPress. (Terima kasih kepada Alexander untuk tip ini).

Mari kita lihat lebih dekat kodenya:

  • Seluruh proses pendaftaran CPT dienkapsulasi dalam fungsi custom_post_type_testimonial() , yang dihubungkan ke init WP hook di akhir cuplikan dengan baris kode ini: add_action( 'init', 'custom_post_type_testimonials' ); . Panggilan add_action ini adalah panggilan terakhir yang menggerakkan segalanya dan membuat WordPress melakukan keajaibannya.
  • Blok kode pertama di dalam fungsi adalah larik data yang disebut $labels , yang menyimpan string terjemahan untuk jenis kiriman khusus ini.
  • Blok kedua adalah array argumen yang digunakan untuk pendaftaran CPT, di sini Anda dapat menentukan semua pengaturan untuk CPT. Bidang mana yang harus didukung oleh CPT, apakah itu terlihat oleh publik, posisi menu wp-admin, apakah itu memiliki halaman arsip dan sebagainya. Untuk melihat set lengkap opsi, silakan kunjungi halaman codex WP ini.
  • Baris terakhir dari fungsi tersebut adalah register_post_type( 'testimonials', $args ); . Ini akan mendaftarkan jenis posting kustom 'testimonial' dengan pengaturan yang kami tentukan di $args di atas.

Itu dia! Kami telah mendaftarkan jenis posting khusus dengan sedikit kode PHP.

Satu-satunya peningkatan yang akan saya ubah dalam kode yang dihasilkan adalah dengan menggunakan fungsi internasionalisasi melarikan diri. Jadi alih-alih _x() dan __() saya akan menggunakan esc_html_x() dan esc_html__() . Itu selalu baik untuk menghindari nilai keluaran – bahkan string terjemahan – tapi itu topik untuk posting blog lain.

Artikel berikutnya dalam seri: Cara Membuat Taksonomi Kustom.