{"id":5977,"date":"2025-11-10T11:33:00","date_gmt":"2025-11-10T04:33:00","guid":{"rendered":"https:\/\/faveworks.com\/hub\/?p=5977"},"modified":"2025-11-09T01:43:57","modified_gmt":"2025-11-08T18:43:57","slug":"custom-post-types-wordpress","status":"publish","type":"post","link":"https:\/\/faveworks.com\/hub\/custom-post-types-wordpress","title":{"rendered":"Panduan Custom Post Types WordPress: CPT, ACF, &amp; Custom Fields"},"content":{"rendered":"\n<p><strong>Custom Post Types<\/strong> (<strong>CPT<\/strong>) adalah mekanisme yang akan membawa situs <em>WordPress<\/em> Anda ke level selanjutnya dalam pengelolaan konten! Apakah Anda bosan memaksakan data &#8220;Produk,&#8221; &#8220;Event,&#8221; atau &#8220;Staf&#8221; ke dalam kerangka <em>Post<\/em> dan <em>Page<\/em> yang terbatas di <em>WordPress<\/em>? Jika ya, ini adalah panduan yang Anda tunggu. <\/p>\n\n\n\n<p>Kami akan membahas CPT, mekanisme revolusioner yang akan mengubah situs Anda dari blog sederhana menjadi sistem <em>content management system (CMS)<\/em> yang sangat kuat dan terstruktur. Menguasai <strong>CPT<\/strong> adalah kunci untuk membangun situs yang benar-benar unik.<\/p>\n\n\n\n<p>Fokus utama artikel ini adalah integrasi antara <strong>CPT<\/strong> dan <strong>Advanced Custom Fields (ACF)<\/strong>, <em>plugin wordpress<\/em> paling populer untuk menambahkan data kustom. Dengan kombinasi ini, Anda dapat membangun struktur data yang benar-benar unik dan fleksibel untuk proyek <em>WordPress<\/em> Anda.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Apa Itu Custom Post Types (CPT) di WordPress?<\/strong><\/h2>\n\n\n\n<p>Secara sederhana, <strong>Custom Post Types<\/strong> (<strong>CPT<\/strong>) adalah kategori konten tambahan yang memungkinkan Anda membuat jenis konten baru di <em>WordPress<\/em>, terpisah dari jenis konten standar seperti <em>Post<\/em>, <em>Page<\/em>, dan <em>Media<\/em>.<\/p>\n\n\n\n<p>Bayangkan Anda membangun situs web untuk <em>e-commerce<\/em> atau direktori. Anda tidak mungkin menggunakan <em>Post<\/em> blog untuk menampilkan &#8220;Produk&#8221; atau <em>Page<\/em> untuk &#8220;Staf Kami&#8221;. Jenis konten ini membutuhkan wadah, tampilan, dan bidang data (<em>custom field<\/em>) yang spesifik. Di sinilah <strong>CPT<\/strong> berperan.<\/p>\n\n\n\n<p>Setiap item dalam <strong>CPT<\/strong> akan disimpan sebagai baris unik di database <em>WordPress<\/em>, dikelompokkan berdasarkan nama unik (<em>slug<\/em>) yang Anda tetapkan (misalnya, produk, event, staf).<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Mengapa CPT Wajib Digunakan oleh Developer WordPress?<\/strong><\/h3>\n\n\n\n<p>Penggunaan <strong>CPT<\/strong> memberikan keunggulan signifikan dalam pengembangan <em>wordpress<\/em> profesional:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Pengelolaan Konten yang Bersih:<\/strong> <strong>CPT<\/strong> menciptakan antarmuka admin yang terorganisir. Anda dapat mengelola &#8220;Resep&#8221; secara terpisah dari &#8220;Berita&#8221;, membuat editor konten Anda lebih efisien. Ini adalah kunci untuk sebuah <em>CMS<\/em> yang efektif.<\/li>\n\n\n\n<li><strong>Fleksibilitas Desain:<\/strong> Anda memiliki kebebasan penuh dalam mendesain tampilan detail (melalui <strong><em>single template<\/em><\/strong>) dan tampilan daftar (melalui <strong><em>archive template<\/em><\/strong>) untuk setiap jenis konten.<\/li>\n\n\n\n<li><strong>Optimasi SEO Struktural:<\/strong> Dengan struktur URL (<em>slug<\/em>) yang relevan (misalnya, \/portfolio\/judul-proyek), <strong>CPT<\/strong> membantu mesin pencari seperti Google memahami jenis dan hierarki konten Anda, yang sangat penting untuk <em>SEO<\/em>.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Perbandingan Metode Utama Pembuatan CPT<\/strong><\/h2>\n\n\n\n<p>Ada tiga pendekatan utama untuk mendaftarkan <strong>Custom Post Types<\/strong> di <em>WordPress<\/em>. Pilihan Anda tergantung pada tingkat keahlian dan kebutuhan proyek.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Kode Manual (<\/strong><strong><em>register post type<\/em><\/strong><strong>):<\/strong>\n<ul class=\"wp-block-list\">\n<li><strong>Pro:<\/strong> Performa paling optimal, kontrol penuh, tidak tergantung <em>plugin<\/em>.<\/li>\n\n\n\n<li><strong>Kontra:<\/strong> Membutuhkan pengetahuan PHP mendalam di file <em>functions.php<\/em> dan rentan kesalahan sintaks.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Plugin Pendaftaran CPT (CPT UI atau <\/strong><strong><em>Pods<\/em><\/strong><strong>):<\/strong>\n<ul class=\"wp-block-list\">\n<li><strong>Pro:<\/strong> Sangat mudah diakses melalui UI, tidak perlu menulis kode.<\/li>\n\n\n\n<li><strong>Kontra:<\/strong> Menambahkan beban <em>plugin<\/em> tambahan ke situs <em>WordPress<\/em> Anda.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>ACF Pro (Metode Rekomendasi):<\/strong>\n<ul class=\"wp-block-list\">\n<li><strong>Pro:<\/strong> Mengkonsolidasikan pendaftaran <strong>CPT<\/strong>, <strong><em>custom fields<\/em><\/strong>, dan <strong><em>custom taxonomy<\/em><\/strong> dalam satu antarmuka yang sudah kuat. Cocok untuk <em>developer<\/em> yang sudah berinvestasi pada <strong>ACF<\/strong>.<\/li>\n\n\n\n<li><strong>Kontra:<\/strong> Membutuhkan lisensi ACF Pro (berbayar).<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<p>Dalam ekosistem <em>wordpress<\/em> modern, <strong>menggunakan ACF Pro<\/strong> adalah pendekatan paling efisien karena menyatukan pembuatan <strong>CPT<\/strong> dan data <em>Custom Field<\/em> di satu tempat.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Langkah 1: Membuat Custom Post Type Menggunakan ACF Pro<\/strong><\/h2>\n\n\n\n<p>Jika Anda menggunakan <strong>plugin wordpress<\/strong> Advanced Custom Fields versi 6.0 atau lebih tinggi, Anda dapat mendaftarkan <strong>CPT<\/strong> tanpa <em>plugin<\/em> tambahan. Mari kita buat <strong>CPT<\/strong> dengan nama &#8220;Proyek&#8221; (menggantikan &#8220;Portfolio&#8221; agar lebih umum).<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Persiapan:<\/strong> Pastikan Anda telah menginstal dan mengaktifkan <strong>plugin ACF<\/strong> Pro.<\/li>\n\n\n\n<li><strong>Akses UI CPT:<\/strong> Di <em>Dashboard<\/em> <em>WordPress<\/em> Anda, navigasikan ke menu <strong>ACF &gt; Post Types<\/strong>.<\/li>\n\n\n\n<li><strong>Label dan Slug:<\/strong> Klik <strong>&#8220;Add New&#8221;<\/strong> dan isi detailnya:\n<ul class=\"wp-block-list\">\n<li><strong>Plural Label:<\/strong> Proyek<\/li>\n\n\n\n<li><strong>Singular Label:<\/strong> Proyek<\/li>\n\n\n\n<li><strong>Post Type Key (Slug):<\/strong> proyek (Wajib huruf kecil tanpa spasi. Ini akan menjadi <em>slug<\/em> URL).<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Konfigurasi Dasar:<\/strong>\n<ul class=\"wp-block-list\">\n<li><strong>Public Visibility:<\/strong> Atur ke <strong>&#8220;Public&#8221;<\/strong> (\u2713) agar dapat diakses publik.<\/li>\n\n\n\n<li><strong>Has Archive:<\/strong> Atur ke <strong>&#8220;True&#8221;<\/strong> (\u2713) untuk menghasilkan halaman arsip (misalnya, websitemu.com\/proyek\/).<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Pilih Fitur yang Didukung (Supports):<\/strong> Centang fitur standar <em>WordPress<\/em> yang akan Anda gunakan: Title, Editor, Featured Image, dan <em>Custom Fields<\/em>.<\/li>\n\n\n\n<li><strong>Simpan:<\/strong> Klik <strong>&#8220;Save Changes&#8221;<\/strong>. Menu baru bernama &#8220;Proyek&#8221; akan muncul di <em>Dashboard<\/em> Anda.<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Langkah 2: Membuat Custom Taxonomy (<\/strong><strong><em>Taksonomi Kustom<\/em><\/strong><strong>)<\/strong><\/h2>\n\n\n\n<p>Untuk mengelompokkan item <strong>CPT<\/strong> &#8220;Proyek&#8221; lebih lanjut, kita memerlukan <strong><em>custom taxonomy<\/em><\/strong>. Mari kita buat <em>taksonomi<\/em> &#8220;Layanan&#8221; untuk memfilter proyek berdasarkan jenis layanan yang diberikan.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Akses Taksonomi:<\/strong> Navigasi ke <strong>ACF &gt; Taxonomies<\/strong>.<\/li>\n\n\n\n<li><strong>Detail Taksonomi:<\/strong> Klik <strong>&#8220;Add New&#8221;<\/strong> dan isi:\n<ul class=\"wp-block-list\">\n<li><strong>Plural Label:<\/strong> Layanan<\/li>\n\n\n\n<li><strong>Singular Label:<\/strong> Layanan<\/li>\n\n\n\n<li><strong>Taxonomy Key (Slug):<\/strong> layanan<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Atur Hierarki:<\/strong> Untuk <em>taksonomi<\/em> yang memiliki struktur induk\/anak (seperti Kategori), atur <strong>&#8220;Hierarchical&#8221;<\/strong> ke <strong>&#8220;True&#8221;<\/strong> (\u2713).<\/li>\n\n\n\n<li><strong>Hubungkan ke CPT:<\/strong> Pada bagian <strong>&#8220;Post Types&#8221;<\/strong>, pastikan Anda mencentang <strong>&#8220;Proyek&#8221;<\/strong>. Ini memastikan <em>taksonomi<\/em> &#8220;Layanan&#8221; hanya muncul pada <strong>CPT<\/strong> yang bersangkutan.<\/li>\n\n\n\n<li><strong>Simpan:<\/strong> Klik <strong>&#8220;Save Changes&#8221;<\/strong>.<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Langkah 3: Menambahkan Custom Fields dengan ACF<\/strong><\/h2>\n\n\n\n<p>Setelah <strong>CPT<\/strong> dan <strong><em>custom taxonomy<\/em><\/strong> dibuat, langkah selanjutnya adalah menambahkan bidang data spesifik yang hanya muncul pada <strong>CPT<\/strong> &#8220;Proyek&#8221; menggunakan <strong>ACF<\/strong>.<\/p>\n\n\n\n<p>Mari kita tambahkan bidang &#8220;Klien&#8221; dan &#8220;Budget Proyek&#8221;:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Buat Field Group:<\/strong> Navigasi ke <strong>ACF &gt; Field Groups<\/strong> dan klik <strong>&#8220;Add New&#8221;<\/strong>. Beri nama &#8220;Data Proyek&#8221;.<\/li>\n\n\n\n<li><strong>Tambahkan Field 1 (Klien):<\/strong>\n<ul class=\"wp-block-list\">\n<li><strong>Field Label:<\/strong> Nama Klien<\/li>\n\n\n\n<li><strong>Field Name:<\/strong> nama_klien<\/li>\n\n\n\n<li><strong>Field Type:<\/strong> Text<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Tambahkan Field 2 (Budget Proyek):<\/strong>\n<ul class=\"wp-block-list\">\n<li><strong>Field Label:<\/strong> Budget Proyek<\/li>\n\n\n\n<li><strong>Field Name:<\/strong> budget_proyek<\/li>\n\n\n\n<li><strong>Field Type:<\/strong> Number<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Aturan Tampilan (Location Rules):<\/strong> Di bawah &#8220;Location Rules&#8221;, atur kondisi:<br><strong>Show this Field Group if Post Type is equal to Proyek<\/strong><\/li>\n\n\n\n<li><strong>Simpan:<\/strong> Klik <strong>&#8220;Save Changes&#8221;<\/strong>.<\/li>\n<\/ol>\n\n\n\n<p>Sekarang, setiap item <strong>CPT<\/strong> &#8220;Proyek&#8221; yang Anda buat akan memiliki bidang &#8220;Nama Klien&#8221; dan &#8220;Budget Proyek&#8221; yang spesifik dan terstruktur.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Langkah 4: Menampilkan CPT di Frontend (<\/strong><strong><em>Theming<\/em><\/strong><strong>)<\/strong><\/h2>\n\n\n\n<p>Menampilkan data <strong>CPT<\/strong> dan <em>custom fields<\/em> di <em>frontend<\/em> situs memerlukan pemahaman tentang hirarki <em>template<\/em> tema <em>WordPress<\/em> Anda.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Tampilan Arsip (Daftar Item):<\/strong> <em>WordPress<\/em> akan menggunakan <em>template<\/em> bernama <strong><em>archive template<\/em><\/strong>: archive-proyek.php.<\/li>\n\n\n\n<li><strong>Tampilan Tunggal (Detail Item):<\/strong> <em>WordPress<\/em> akan menggunakan <em>template<\/em> bernama <strong><em>single template<\/em><\/strong>: single-proyek.php.<\/li>\n<\/ul>\n\n\n\n<p>Untuk memanggil data <em>Custom Field<\/em> dari <strong>ACF<\/strong> di dalam <em>single template<\/em> (single-proyek.php), Anda akan menggunakan fungsi-fungsi PHP <strong>ACF<\/strong>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?php\u00a0\n\n\/\/ Contoh menampilkan data Custom Field ACF di single-proyek.php\n\n\/\/ Ambil nilai dari field \"Nama Klien\"\n\n$klien = get_field('nama_klien');\u00a0\n\n\/\/ Ambil nilai dari field \"Budget Proyek\"\n\n$budget = get_field('budget_proyek');\u00a0\n\n?&gt;\n\n&lt;!-- Tampilkan data --&gt;\n\n&lt;div class=\"project-info\"&gt;\n\n\u00a0\u00a0\u00a0\u00a0&lt;p&gt;Nama Klien: &lt;strong&gt;&lt;?php echo $klien; ?&gt;&lt;\/strong&gt;&lt;\/p&gt;\n\n\u00a0\u00a0\u00a0\u00a0&lt;p&gt;Estimasi Budget: Rp &lt;?php echo number_format($budget, 0, ',', '.'); ?&gt;&lt;\/p&gt;\n\n&lt;\/div&gt;\n\n&lt;?php\n\n\/\/ Contoh menampilkan Custom Taxonomy \"Layanan\"\n\n$terms = get_the_terms( get_the_ID(), 'layanan' );\n\nif ( $terms &amp;&amp; ! is_wp_error( $terms ) ) :\u00a0\n\n?&gt;\n\n\u00a0\u00a0\u00a0\u00a0&lt;p&gt;Kategori Layanan:\u00a0\n\n\u00a0\u00a0\u00a0\u00a0&lt;?php foreach ( $terms as $term ) {\n\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0echo '&lt;span&gt;' . $term-&gt;name . '&lt;\/span&gt; ';\n\n\u00a0\u00a0\u00a0\u00a0} ?&gt;\n\n\u00a0\u00a0\u00a0\u00a0&lt;\/p&gt;\n\n&lt;?php endif; ?&gt;<\/code><\/pre>\n\n\n\n<p>Menggunakan kode ini, Anda mengontrol penuh bagaimana setiap detail <strong>CPT<\/strong> &#8220;Proyek&#8221; ditampilkan, memanfaatkan data yang dimasukkan melalui <em>custom fields<\/em> <strong>ACF<\/strong>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Saatnya Transformasi: Situs Kustom Anda Menanti!<\/strong><\/h2>\n\n\n\n<p><strong>Custom Post Types<\/strong> adalah fondasi yang wajib dikuasai untuk setiap situs <em>WordPress<\/em> yang berfungsi sebagai <em>content management system (CMS)<\/em> yang sesungguhnya. Dengan menggabungkan kekuatan <strong>CPT<\/strong> dengan <strong>plugin wordpress<\/strong> Advanced Custom Fields (<strong>ACF<\/strong>), Anda mendapatkan kontrol data yang tidak terbatas.<\/p>\n\n\n\n<p>Memilih <strong>ACF<\/strong> Pro untuk mendaftarkan <strong>CPT<\/strong> dan <strong><em>custom taxonomy<\/em><\/strong> sekaligus menyederhanakan alur kerja <em>developer<\/em>. Ini memungkinkan Anda berfokus pada merancang <strong><em>single template<\/em><\/strong> dan <strong><em>archive template<\/em><\/strong> yang efektif untuk kebutuhan <em>frontend<\/em> situs Anda.<\/p>\n\n\n\n<p>Mulailah merencanakan struktur konten Anda. Tentukan <em>custom fields<\/em> dan <em>taksonomi<\/em> yang dibutuhkan, lalu gunakan <strong>ACF<\/strong> untuk mewujudkannya. Selamat membangun <em>WordPress<\/em> yang lebih kuat!<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Referensi<\/strong><\/h2>\n\n\n\n<p>Untuk pendalaman lebih lanjut, Anda dapat merujuk pada sumber otoritas berikut:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Dokumentasi Resmi WordPress (Fungsi <em>register post type<\/em>)<\/li>\n\n\n\n<li>Dokumentasi Resmi Advanced Custom Fields (Panduan penggunaan <em>ACF<\/em>)<\/li>\n\n\n\n<li>Panduan <em>Theming<\/em> WordPress (Hierarki <em>template<\/em> dan implementasi <em>functions.php<\/em>)<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Custom Post Types (CPT) adalah mekanisme yang akan membawa situs WordPress Anda ke level selanjutnya dalam pengelolaan konten! Apakah Anda bosan memaksakan data &#8220;Produk,&#8221; &#8220;Event,&#8221;&#8230;<\/p>\n","protected":false},"author":2,"featured_media":5979,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[46],"class_list":{"0":"post-5977","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-website","8":"tag-custom-post-types"},"_links":{"self":[{"href":"https:\/\/faveworks.com\/hub\/wp-json\/wp\/v2\/posts\/5977","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/faveworks.com\/hub\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/faveworks.com\/hub\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/faveworks.com\/hub\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/faveworks.com\/hub\/wp-json\/wp\/v2\/comments?post=5977"}],"version-history":[{"count":1,"href":"https:\/\/faveworks.com\/hub\/wp-json\/wp\/v2\/posts\/5977\/revisions"}],"predecessor-version":[{"id":5978,"href":"https:\/\/faveworks.com\/hub\/wp-json\/wp\/v2\/posts\/5977\/revisions\/5978"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/faveworks.com\/hub\/wp-json\/wp\/v2\/media\/5979"}],"wp:attachment":[{"href":"https:\/\/faveworks.com\/hub\/wp-json\/wp\/v2\/media?parent=5977"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/faveworks.com\/hub\/wp-json\/wp\/v2\/categories?post=5977"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/faveworks.com\/hub\/wp-json\/wp\/v2\/tags?post=5977"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}