@dotty Wie Sie an diesem Trac-Ticket sehen können: Es sollten Indexseiten für benutzerdefinierte Beitragstypen vorhanden sein, damit der Bedarf im WordPress-Kern offensichtlich noch nicht behoben wurde.
Sowohl @John P Bloch als auch @Chris_O bieten Ihnen gute Alternativen. Ich werde dir einen dritten geben.
A „Produkte“ Seite
Erstellen Sie zunächst eine Seite für Ihren benutzerdefinierten Beitragstyp und nennen Sie sie "Produkte" . Das gibt ihm die folgende URL:
http: //example.php/products/
Ein Shortcode " Produktliste "
Erstellen Sie als Nächstes einen Shortcode , den Sie in Ihre Seite "Produkte" einbetten können . In meinem Beispiel habe ich es genannt [product-list]
. Hier ist ein Screenshot, wie die Verwendung aussehen würde:
(Quelle: mikeschinkel.com )
Beachten Sie, dass ein solcher Shortcode ein großartiger Kandidat wäre, um viele optionale Funktionen hinzuzufügen und ihn für viele verschiedene Beitragstypen zu verwenden, aber im Interesse der Klarheit habe ich so ziemlich alles fest codiert. Sie können es natürlich als Ausgangspunkt für Ihren eigenen Shortcode verwenden:
<?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);
}
}
Eine post-product.php
Themenvorlagendatei
Als Nächstes müssen Sie eine Designvorlagendatei erstellen, in der nur ein Produkt angezeigt wird. Die Funktion , die implementiert die Short Namen der Template - Datei post-product.php
und hier ist ein guter Ausgangspunkt:
<?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>
Fügen Sie die Menüoption hinzu
Zuletzt möchten Sie die Menüoption hinzufügen. Dies ist sehr einfach, wie Sie auf diesem Screenshot sehen können (im Folgenden wird davon ausgegangen, dass Sie zuvor noch nichts mit WordPress 3.0-Menüs gemacht haben und ein Thema verwenden, das WordPress 3.0-Menüs wie Twenty Ten unterstützt):
- Wählen Sie die Menüoption im Admin-Menü.
- Klicken Sie auf das " + " , um ein neues Menü hinzuzufügen.
- Geben Sie Ihren Menünamen ein, was auch immer Sie möchten.
- Klicken Sie auf die Schaltfläche "Menü erstellen" (der Screenshot zeigt "Menü speichern" , beim Hinzufügen wird jedoch "Menü erstellen" angezeigt .)
- Wählen Sie Ihr neues Menü als "Primäre Navigation" .
- Wählen Sie Ihre Seite "Produkte ".
- Klicken Sie auf "Zum Menü hinzufügen".
- Klicken Sie auf "Menü speichern".
(Quelle: mikeschinkel.com )
Schließlich die Ausgabe
Und so könnte eine grundlegende Produktliste aussehen:
(Quelle: mikeschinkel.com )