@dotty Bu trac bileti ile görebileceğiniz gibi: Özel yazı türleri için dizin sayfaları bulunmalıdır, bu nedenle WordPress çekirdeğinde ihtiyaç henüz giderilmemiştir.
Hem @John P Bloch hem de @Chris_O size iyi alternatifler sunar; Sana bir üçüncü vereceğim.
Bir "Ürünler" Sayfası
Önce Özel Yazı Türünüz için bir Sayfa oluşturun ve "Ürünler" olarak adlandırın . Bu, aşağıdaki URL'yi verecektir:
http: //example.php/products/
Bir "Ürün Listesi" Kısa Kodu
Ardından , "Ürünler" sayfanıza gömebileceğiniz bir Kısa Kod oluşturun . Örneğimde aradım . İşte onu kullanarak neye benzeyeceğini gösteren bir ekran görüntüsü:[product-list]
(kaynak: mikeschinkel.com )
Böyle bir kısa kodun birçok isteğe bağlı işlevsellik eklemek ve birçok farklı yazı tipi için çalışmasını sağlamak için harika bir aday olacağını unutmayın, ancak netlik açısından her şeyi çok zor kodladım. Elbette kendi kısa kodunuz için bir başlangıç noktası olarak kullanabilirsiniz:
<?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);
}
}
Bir post-product.php
Tema Şablon Dosyası
Ardından, yalnızca bir ürünü görüntüleyen bir tema şablonu dosyası oluşturmanız gerekir. Kısa kodu uygulayan işlev şablon dosyasını adlandırır post-product.php
ve işte iyi bir başlangıç noktası:
<?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>
Menü Seçeneğini Ekle
Son olarak menü seçeneğini eklemek isteyeceksiniz. Bu ekran görüntüsünde görebileceğiniz gibi bu çok basittir (aşağıda WordPress 3.0 menüleriyle daha önce hiçbir şey yapmadığınız ve Yirmi On gibi WordPress 3.0 menülerini destekleyen bir tema kullandığınız varsayılmaktadır):
- Yönetici menüsünde menü seçeneğini seçin.
- Click " + " yeni bir menü eklemek için.
- Menü adınızı istediğinizi yazın.
- Click "Menü Oluştur" butonuna (ekran görüntüsü gösterileri "Kaydet Menüsü" ama olacak "Menü oluşturma" eklerken.)
- "Birincil Navigasyon" olarak yeni Menünüzü seçin .
- Senin seçin "Ürünler " sayfasını.
- "Menüye Ekle" yi tıklayın
- "Menüyü Kaydet" i tıklayın
(kaynak: mikeschinkel.com )
Son olarak, Çıktı
Temel ürün listelemesi şöyle görünebilir:
(kaynak: mikeschinkel.com )