@otty Seperti yang dapat Anda lihat dengan tiket trac ini: Harus ada halaman indeks untuk jenis posting kustom jadi jelas kebutuhannya belum ditangani di inti WordPress.
@John P Bloch dan @Chris_O memberikan Anda alternatif yang baik; Saya akan memberi Anda 3.
Sebuah "Produk" Halaman
Pertama, Buat Halaman untuk Jenis Posting Kustom Anda dan menyebutnya "Produk" . Itu akan memberikannya URL berikut:
http: //example.php/products/
Sebuah "Daftar Produk" Kode pendek
Selanjutnya buat Shortcode yang dapat Anda sisipkan ke halaman "Produk" . Dalam contoh saya, saya menyebutnya [product-list]
. Berikut ini screenshot dari tampilannya yang seperti apa:
(sumber: mikeschinkel.com )
Perhatikan bahwa kode pendek seperti itu akan menjadi kandidat yang bagus untuk menambahkan banyak fungsi opsional dan memungkinkannya bekerja untuk banyak jenis posting yang berbeda, tetapi demi kepentingan kejelasan, saya cukup banyak mengkodekan semuanya. Tentu saja Anda dapat menggunakannya sebagai titik awal untuk kode pendek Anda sendiri:
<?php
add_shortcode('product-list', 'my_product_list');
function my_product_list($args) {
$save_post = $GLOBALS['post']; // Save state so you can restore later
$post_type = 'product';
$template_file = get_stylesheet_directory() . "/post-{$post_type}.php";
if (!file_exists($template_file)) {
return "<p>Missing template [$template_file].</p>";
} else {
global $post;
$q = new WP_Query("showposts=10&post_type={$post_type}&orderby=title&order=ASC");
$rows = array();
$rows[] = '<div class="post-list ' . $post_type . '-post-list">';
global $post_list_data;
$post_list_data = array();
$post_list_data['post_count'] = $post_count = count($q->posts);
foreach ($q->posts as $post) {
$q->the_post();
ob_start();
include($template_file);
$rows[] = ob_get_clean();
}
$rows[] = '</div>';
$GLOBALS['post'] = $save_post;
return implode("\n",$rows);
}
}
Sebuah post-product.php
Tema Template Berkas
Selanjutnya Anda harus membuat file templat tema yang hanya menampilkan satu produk. Fungsi yang mengimplementasikan shortcode menamai file template post-product.php
dan inilah titik awal yang baik:
<?php
/**
* post-product.php - File to display only one product within a list of products.
*/
?>
<div id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
<h2 class="entry-title"><?php the_title(); ?></h2>
<div class="entry-content">
<?php the_content(); ?>
</div>
</div>
Tambahkan Opsi Menu
Terakhir Anda ingin menambahkan opsi menu. Ini sangat mudah seperti yang Anda lihat dari tangkapan layar ini (berikut ini mengasumsikan Anda tidak melakukan apa-apa dengan menu WordPress 3.0 sebelumnya dan bahwa Anda menggunakan tema yang mendukung menu WordPress 3.0 seperti Twenty Ten):
- Pilih opsi menu di menu admin.
- Klik " + " untuk menambahkan menu baru.
- Ketikkan nama menu Anda, apa pun yang Anda suka.
- Klik tombol "Buat Menu" (tangkapan layar menunjukkan "Simpan Menu" tetapi itu akan menjadi "Buat Menu" saat menambahkan.)
- Pilih Menu baru Anda sebagai "Navigasi Utama" .
- Pilih halaman " Produk " Anda.
- Klik "Tambahkan ke Menu"
- Klik "Simpan Menu"
(sumber: mikeschinkel.com )
Akhirnya, Output
Dan inilah yang terlihat seperti daftar produk dasar:
(sumber: mikeschinkel.com )