Solusi pertama dapat menggunakan API Pengaturan dan membuat 2 bidang "Deskripsi Produk" dan "Deskripsi Penggunaan" , setelah itu ditampilkan di templat Anda bahwa bidang itu mudah seperti:
$options = get_option('my_theme_options');
echo $options['prod_description'];
// echo $options['usage_description'];
Namun, pengaturan API bukan bagian terbaik dari WP core, dan mungkin membuat halaman pengaturan hanya untuk bidang yang tidak layak.
Pendekatan lain adalah menggunakan halaman (dengan templat halaman khusus ) sebagai arsip.
Buat halaman dan sebut "Arsip Produk"
Di dalamnya letakkan sesuatu seperti itu:
<?php
/*
Template Name: Products Archive
*/
get_header();
if ( have_posts() ) the post();
the_content(); // this will output the page content
$p_query = new WP_Query('post_type=products');
if ( $p_query->have_posts() ) { while( $p_query->have_posts() ) {
$p_query->the_post();
// this will require a 'entry-product.php' where you can put all your product markup
get_template_part('entry', 'product');
} }
wp_reset_postdata();
get_footer();
Setelah itu, di backend Anda, buat halaman dan tetapkan ke template yang baru saja dibuat. Tulis apa pun yang Anda inginkan di konten halaman dan ketika Anda akan membuka halaman, Anda akan melihat konten halaman dan produk.
Hal yang sama dapat dilakukan untuk halaman taksonomi. Cukup ganti templat halaman dan kueri di dalamnya.
Jika, karena alasan apa pun, Anda perlu menggunakan archive-products.php
sebagai arsip produk, alternatifnya adalah membuat templat kustom, tetapi gunakan hanya untuk mengambil konten halaman.
Buat file php dalam tema Anda, dan beri nama 'page-prod-description.php' . Dalam file ini cantumkan:
<?php
/*
Template Name: Products Description
*/
wp_safe_redirect( home_url() );
exit();
Apa yang dilakukan file ini, adalah membuat templat halaman khusus. Template itu dapat dilampirkan ke halaman, tetapi halaman tersebut tidak dapat dipanggil secara langsung , karena jika Anda mencobanya Anda akan diarahkan ke halaman utama.
Sekarang login di backend Anda dan buat halaman, beri judul "Deskripsi Produk" dan tetapkan template halaman yang baru saja dibuat. Jika Anda mencoba mengakses halaman, http://example.com/product-description
Anda akan diarahkan ke halaman utama.
Di template arsip produk archive-products.php
Anda,, Anda dapat menggunakan konten yang disisipkan di halaman itu seperti:
$desc = get_pages('meta_key=_wp_page_template&meta_value=page-prod-description.php');
if ( ! empty($desc) ) {
$page = array_shift($desc);
echo apply_filters('the_content', $page->post_content );
}
Sekarang klien Anda dapat login di backend dan mengedit halaman "Deskripsi Produk" dan semuanya ditulis dalam konten halaman akan ditampilkan di halaman arsip.
Hal yang sama, tentunya, dapat dilakukan untuk arsip taksonomi.
main_query
objek$wp_query
dan menyebabkannya tidak menampilkan hakpost_type
untuk kueri yang terjadi pada halaman arsip. Yang akan membuat panggilan Anda ke filter sepertipre_get_posts
untuk halaman arsip tidak berharga. Ini adalah masalah utama. Wordpress perlu menyediakan sarana untuk MENGELOLA juga Konten Jenis Arsip dan Arsip taksonomi.Sloppy
cara menangani hal ini. Namun sayangnya tidak ada cara yang bersih untuk melakukan ini. Wordpress perlu menyediakan cara yang bersih di sini, IMO!Anda dapat membuat halaman normal, lalu menerapkan template khusus yang berisi loop kustom yang sesuai untuk menghasilkan CPT. Atau Anda bisa membuat halaman opsi (atau menambahkan opsi ke Theme Customizer), di mana klien dapat menambahkan konten melalui WYSIWYG, dan kemudian menampilkan konten ini dalam templat arsip yang sesuai.
sumber