WordPress, ELrolumnews — Anda sudah punya blog dan halaman statis. Tapi bagaimana jika Anda ingin membuat portofolio, katalog produk, atau daftar acara—yang terpisah dari postingan blog biasa?
Artikel ini cocok untuk: Anda yang sudah familiar dengan WordPress dan ingin naik level dengan Custom Post Type—tanpa harus jadi developer PHP.
WordPress secara default punya beberapa tipe konten: Posts, Pages, Media, dan lainnya. Tapi untuk kebutuhan yang lebih spesifik—seperti portofolio, produk, atau acara—tipe default ini kurang cocok. Di sinilah Custom Post Type (CPT) berperan.
Di artikel ini, kita akan bahas dari nol: apa itu Custom Post Type, kapan menggunakannya, dan dua cara membuatnya—via plugin (untuk yang tidak suka coding) dan manual (untuk yang ingin kontrol penuh).
Apa Itu Custom Post Type?
Custom Post Type adalah tipe konten tambahan yang Anda buat sendiri, di luar tipe default WordPress . Ia memungkinkan Anda mengelola konten yang berbeda struktur dari blog posts biasa.
Contoh Penggunaan Custom Post Type
| Contoh | Fungsi |
|---|---|
| Portfolio | Menampilkan karya desainer, fotografer, atau agensi |
| Produk | Katalog produk (seperti WooCommerce) |
| Testimoni | Menampilkan ulasan pelanggan |
| Acara/Events | Jadwal dan manajemen acara |
| Case Studies | Studi kasus untuk agensi atau konsultan |
Perbedaan Post Type dengan Pages
| Aspek | Pages | Custom Post Type |
|---|---|---|
| Tujuan | Konten statis (About, Contact) | Konten dinamis/terstruktur (portfolio, produk) |
| Taxonomies | Tidak ada kategori/tag default | Mendukung custom taxonomies |
| Template | Menggunakan page.php | Menggunakan single-{posttype}.php |
| Hierarki | Mendukung parent-child | Biasanya non-hierarkis |
| Update Konten | Jarang diupdate | Sering diupdate |
💡 Tips Pro: Gunakan Custom Post Type saat Anda butuh struktur konten yang berbeda dari blog posts. Jika kontennya statis seperti “About”, cukup gunakan Pages.
Kapan Anda Membutuhkan Custom Post Type?
Anda mungkin butuh CPT jika:
Konten Anda tidak cocok dengan Posts atau Pages — misalnya, Anda ingin menampilkan portofolio dengan field khusus (klien, tahun, teknologi yang dipakai)
Anda ingin organisasi yang lebih rapi — memisahkan produk dari artikel blog
Anda butuh tampilan yang berbeda — halaman arsip khusus, template khusus
Anda ingin URL yang spesifik — seperti
/produk/nama-produk/bukan/posts/nama-produk/
💡 Tips Pro: Sebelum membuat CPT, tanyakan pada diri sendiri: “Apakah konten ini akan sering diupdate? Apakah butuh tampilan yang berbeda? Apakah butuh field khusus?” Jika jawabannya ya, CPT adalah jawabannya .
Metode 1: Membuat Custom Post Type dengan Plugin (Tanpa Coding)
Ini metode termudah untuk pemula. Kita akan menggunakan Custom Post Type UI (CPTUI)—plugin gratis paling populer untuk membuat CPT .
Langkah 1: Install Plugin CPTUI
Masuk ke Plugins > Add New
Cari “Custom Post Type UI”
Klik Install Now, lalu Activate
Anda akan melihat menu CPTUI di sidebar WordPress
Langkah 2: Buat Post Type Baru
Klik CPTUI > Add/Edit Post Types
Isi Post Type Slug — ini adalah identifier unik (contoh:
portofolio)Isi Plural Label — nama yang muncul di menu (contoh:
Portofolio)Isi Singular Label — nama tunggal (contoh:
Portofolio Item)
Pengaturan Tambahan:
| Setting | Rekomendasi | Keterangan |
|---|---|---|
| Public | True | Agar bisa diakses publik |
| Has Archive | True | Membuat halaman arsip /portofolio/ |
| Show in REST API | True | Untuk Gutenberg editor |
| Supports | Title, Editor, Thumbnail | Fitur yang didukung |
Langkah 3: Atur URL Slug
Di bagian Rewrite, atur slug URL. Contoh:
Custom Rewrite Slug:
portofolioWith Front: False (agar tidak ditambah
/blog/di depan)
Langkah 4: Simpan dan Mulai Gunakan
Klik Add Post Type
Buka Settings > Permalinks, klik Save Changes untuk flush rewrite rules
Anda akan melihat menu baru Portofolio di sidebar WordPress
Mulai tambahkan konten seperti biasa
💡 Tips Pro: Jika ingin menambahkan custom fields (seperti “Klien”, “Tahun”, “Teknologi”), gunakan plugin ACF (Advanced Custom Fields). CPTUI hanya membuat post type—ACF melengkapinya dengan field kustom .
Metode 2: Membuat Custom Post Type dengan Coding (Manual)
Jika Anda ingin kontrol penuh dan tidak bergantung pada plugin, buat CPT secara manual dengan register_post_type() .
Langkah 1: Buka functions.php
Masuk ke Appearance > Theme File Editor
Buka functions.php
Backup dulu sebelum mengedit
Langkah 2: Tambahkan Kode Register
function elrolum_register_portfolio_cpt() { $labels = array( 'name' => 'Portofolio', 'singular_name' => 'Portofolio Item', 'menu_name' => 'Portofolio', 'add_new' => 'Tambah Baru', 'add_new_item' => 'Tambah Portofolio Baru', 'edit_item' => 'Edit Portofolio', 'view_item' => 'Lihat Portofolio', 'all_items' => 'Semua Portofolio', 'search_items' => 'Cari Portofolio', ); $args = array( 'labels' => $labels, 'public' => true, 'has_archive' => true, 'rewrite' => array( 'slug' => 'portofolio' ), 'supports' => array( 'title', 'editor', 'thumbnail', 'excerpt' ), 'menu_icon' => 'dashicons-portfolio', 'show_in_rest' => true, ); register_post_type( 'portofolio', $args ); } add_action( 'init', 'elrolum_register_portfolio_cpt' );
Langkah 3: Pahami Setiap Argumen
| Argumen | Fungsi |
|---|---|
| labels | Nama yang muncul di admin |
| public | Apakah bisa diakses publik |
| has_archive | Membuat halaman arsip |
| rewrite | Slug URL |
| supports | Fitur yang didukung (title, editor, thumbnail) |
| menu_icon | Ikon di sidebar admin |
| show_in_rest | Untuk Gutenberg editor |
Langkah 4: Flush Permalinks
Setelah menambahkan kode:
Buka Settings > Permalinks
Klik Save Changes
Selesai! Menu Portofolio muncul di sidebar
⚠️ Peringatan: Jika Anda mengedit
functions.phptema induk, perubahan akan hilang saat update tema. Gunakan child theme untuk menyimpan kode kustom Anda.
Langkah 3: Menampilkan Custom Post Type di Frontend
Setelah CPT dibuat, Anda perlu menampilkannya di website. Ada dua cara:
Cara 1: Menggunakan Template Otomatis
WordPress secara otomatis menggunakan template archive.php dan single.php dari tema Anda. Jika ingin tampilan khusus:
Copy
single.phpdari tema indukRename menjadi
single-portofolio.phpEdit sesuai kebutuhan
Hierarki template CPT:
single-{post_type}.php— untuk halaman singlearchive-{post_type}.php— untuk halaman arsip
Cara 2: Menggunakan Query Loop (Manual)
Jika ingin menampilkan CPT di halaman tertentu (misalnya homepage), gunakan WP_Query :
$portfolio_query = new WP_Query( array( 'post_type' => 'portofolio', 'posts_per_page' => 6, ) ); if ( $portfolio_query->have_posts() ) { while ( $portfolio_query->have_posts() ) { $portfolio_query->the_post(); // Tampilkan konten the_title( '<h3>', '</h3>' ); the_content(); } wp_reset_postdata(); }
Tips Lanjutan untuk Level Expert
1. Custom Taxonomy
Tambahkan taksonomi khusus untuk mengelompokkan CPT. Contoh: “Kategori Portofolio” atau “Jenis Proyek” .
2. Custom Fields
Gunakan ACF (Advanced Custom Fields) untuk menambahkan field seperti “Klien”, “Tahun”, “URL Proyek”. ACF terintegrasi langsung dengan CPT .
3. Custom Database Table
Jika CPT Anda punya banyak custom fields (20+), pertimbangkan untuk menggunakan custom database table alih-alih wp_postmeta. Ini meningkatkan performa query hingga 50-80% .
4. SEO untuk CPT
Pastikan permalink CPT Anda bersih dan mengandung keyword
Gunakan Yoast SEO atau RankMath untuk optimasi meta
Tambahkan schema markup yang sesuai dengan tipe konten
Kesalahan Umum dan Cara Menghindarinya
| Kesalahan | Akibat | Solusi |
|---|---|---|
| Lupa flush permalinks | CPT 404 | Settings > Permalinks > Save |
| Slug sama dengan post type lain | Konflik | Gunakan slug unik |
| Edit tema induk | Perubahan hilang saat update | Gunakan child theme |
Tidak set show_in_rest | Tidak bisa pakai Gutenberg | Set ke true |
| Tidak backup | Error tidak bisa dipulihkan | Backup sebelum edit |
Custom Post Type adalah cara WordPress untuk memperluas tipe konten—dari yang awalnya hanya Posts dan Pages, menjadi apa pun yang Anda butuhkan . Kuncinya:
Pahami kapan butuh CPT — saat konten Anda butuh struktur berbeda
Pilih metode — plugin (mudah) atau coding (kontrol penuh)
Atur slug URL — bersih, mengandung keyword
Flush permalinks — agar URL baru berfungsi
Tampilkan di frontend — gunakan template atau Query Loop
Tambahkan taxonomy & fields — untuk struktur yang lebih kaya
Dengan Custom Post Type, Anda bisa mengubah WordPress dari sekadar blog engine menjadi platform konten apa pun yang Anda butuhkan—portofolio, katalog produk, direktori, atau apa saja.
Ingat: CPT adalah fondasi. Untuk tampilan yang benar-benar kustom, Anda tetap butuh template dan custom fields.
Sudah siap membuat Custom Post Type pertama Anda?
💬 Punya pengalaman dengan CPT? Bagikan di kolom komentar!





