@dotty Como puede ver en este ticket de trac: Allí deben ser páginas de índice para tipos de publicaciones personalizadas , por lo que obviamente la necesidad aún no se ha abordado en el núcleo de WordPress.
Tanto @John P Bloch como @Chris_O le ofrecen buenas alternativas; Te voy a dar una tercera.
Una "Productos" Página
Primero cree una Página para su tipo de publicación personalizada y llámela "Productos" . Eso le dará la siguiente URL:
enlace
Un "Lista de productos" Código corto
A continuación, cree un Shortcode que puede incrustar en sus "Productos" página. En mi ejemplo lo llamé [product-list]
. Aquí hay una captura de pantalla de cómo se vería su uso:

Tengaencuentaquedichocódigoabreviadoseríaungrancandidatoparaagregarmuchasfuncionalidadesopcionalesypermitirquefuncioneparamuchostiposdepublicacionesdiferentes,peroenarasdelaclaridad,lohecodificadotodo.Porsupuesto,puedeusarlocomopuntodepartidaparasupropiocódigoabreviado:
<?phpadd_shortcode('product-list','my_product_list');functionmy_product_list($args){$save_post=$GLOBALS['post'];//Savestatesoyoucanrestorelater$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);
}
}
Un archivo de plantilla de tema post-product.php
A continuación, deberá crear un archivo de plantilla de tema que solo muestre un producto. La función que implementa el código abreviado nombra el archivo de plantilla post-product.php
y aquí hay un buen punto de partida:
<?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>
Añadir la opción de menú
Por último, querrás agregar la opción de menú. Esto es muy sencillo, como puede ver en esta captura de pantalla (lo siguiente supone que no ha hecho nada con los menús de WordPress 3.0 anteriormente y que está utilizando un tema que admite menús de WordPress 3.0 como Twenty Ten):
- Seleccione la opción de menú en el menú de administración.
- Haz clic en " + " para agregar un nuevo menú.
- Escriba el nombre de su menú, lo que quiera.
- Haga clic en el botón "Crear menú" (la captura de pantalla muestra "Guardar menú" , pero será "Crear menú" al agregar .)
- Seleccione su nuevo menú como su "Navegación principal" .
- Seleccione su página "Productos ".
- Haz clic en "Agregar al menú"
- Haz clic en "Guardar menú"

Finalmente,lasalida
Yestoesloquepodríaparecerunalistadeproductosbásicos: