@dotty Як ви бачите на цьому маршрутному квитку: повинні бути індексні сторінки для користувацьких типів публікацій, тому очевидно, що потреба ще не вирішена в ядрі WordPress.
І @John P Bloch, і @Chris_O дають хороші альтернативи; Я збираюся дати тобі 3-е.
«Продукти» Page
Спочатку створіть сторінку для власного типу публікації та назвіть її "Продукти" . Це дасть йому таку URL-адресу:
http: //example.php/products/
Короткий код "Список продуктів"
Далі створіть Короткий код, який можна вбудувати у свою сторінку "Продукти" . У своєму прикладі я це назвав [product-list]
. Ось скріншот того, як це виглядатиме:
(джерело: mikeschinkel.com )
Зауважте, що такий короткий код був би чудовим кандидатом для додавання безлічі додаткових функціональних можливостей та надання йому змоги працювати для багатьох різних типів публікацій, але в інтересах ясності я дуже багато кодував все. Звичайно, ви можете використовувати його як вихідну точку для власного короткого коду:
<?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);
}
}
post-product.php
Тема шаблон файл
Далі потрібно створити файл шаблону теми, який відображатиме лише один продукт. Функція, яка реалізує короткий код, називає файл шаблону, post-product.php
і ось хороша відправна точка:
<?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>
Додайте опцію меню
Останнє ви хочете додати опцію меню. Це дуже просто, як ви можете бачити на цьому скріншоті (нижче передбачається, що ви нічого не робили з меню WordPress 3.0 і що ви використовуєте тему, яка підтримує меню WordPress 3.0, наприклад, двадцять десять):
- Виберіть у меню адміністратора параметр меню.
- Клацніть " + ", щоб додати нове меню.
- Введіть назву меню, що завгодно.
- Натисніть кнопку "Створити меню" (на знімку екрана відображається "Зберегти меню", але при додаванні це буде "Створити меню" ).
- Виберіть нове меню як "Первинну навігацію" .
- Виберіть сторінку "Продукти ".
- Натисніть "Додати в меню"
- Натисніть "Зберегти меню"
(джерело: mikeschinkel.com )
Нарешті, вихід
Ось як може виглядати базовий список продуктів:
(джерело: mikeschinkel.com )