@dotty Như bạn có thể thấy bằng vé trac này: Cần có các trang chỉ mục cho các loại bài đăng tùy chỉnh để rõ ràng nhu cầu chưa được giải quyết trong lõi WordPress.
Cả @John P Bloch và @Chris_O đều cung cấp cho bạn những lựa chọn thay thế tốt; Tôi sẽ cung cấp cho bạn một thứ 3.
Một "Sản phẩm" Trang
Đầu tiên Tạo một trang cho Loại bài đăng tùy chỉnh của bạn và gọi nó là "Sản phẩm" . Điều đó sẽ cung cấp cho nó URL sau:
http: //example.php/products/
Một "Sản phẩm List" SHORTCODE
Tiếp theo, tạo một Shortcode mà bạn có thể nhúng vào trang "Sản phẩm" của mình. Trong ví dụ của tôi, tôi đã gọi nó [product-list]
. Đây là một ảnh chụp màn hình về việc sử dụng nó sẽ trông như thế nào:

(nguồn: mikechinkel.com )
Lưu ý rằng một shortcode như vậy sẽ là một ứng cử viên tuyệt vời để thêm nhiều chức năng tùy chọn và cho phép nó hoạt động cho nhiều loại bài đăng khác nhau nhưng vì sự rõ ràng, tôi đã mã hóa khá nhiều thứ. Tất nhiên bạn có thể sử dụng nó làm điểm bắt đầu cho mã ngắn của riêng bạn:
<?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);
}
}
Một post-product.php
Theme Template file
Tiếp theo bạn sẽ cần tạo một tệp mẫu chủ đề chỉ hiển thị một sản phẩm. Hàm thực hiện mã ngắn đặt tên tệp mẫu post-product.php
và đây là điểm khởi đầu tốt:
<?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>
Thêm tùy chọn menu
Cuối cùng bạn sẽ muốn thêm tùy chọn menu. Điều này rất đơn giản như bạn có thể thấy từ ảnh chụp màn hình này (giả định sau đây bạn chưa làm gì với các menu WordPress 3.0 và bạn đang sử dụng một chủ đề hỗ trợ các menu WordPress 3.0 như Twenty Ten):
- Chọn tùy chọn menu trong menu quản trị.
- Nhấp vào " + " để thêm menu mới.
- Nhập tên menu của bạn, bất cứ điều gì bạn thích.
- Nhấp vào nút "Tạo Menu" (ảnh chụp màn hình hiển thị "Lưu Menu" nhưng nó sẽ là "Tạo Menu" khi thêm.)
- Chọn Menu mới của bạn làm "Điều hướng chính" .
- Chọn trang "Sản phẩm" của bạn .
- Nhấp vào "Thêm vào Menu"
- Nhấp vào "Lưu menu"

(nguồn: mikechinkel.com )
Cuối cùng, đầu ra
Và đây là danh sách sản phẩm cơ bản có thể trông như thế nào:

(nguồn: mikechinkel.com )