@dotty Como puede ver en este ticket de seguimiento: debe haber páginas de índice para los 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 te dan buenas alternativas; Te voy a dar un 3er.
Un "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:
http: //example.php/products/
Un shortcode "Lista de productos"
Luego cree un Shortcode que pueda incrustar en su página de "Productos" . En mi ejemplo lo llamé [product-list]
. Aquí hay una captura de pantalla de cómo se vería su uso:
(fuente: mikeschinkel.com )
Tenga en cuenta que un código tan corto sería un gran candidato para agregar muchas funciones opcionales y permitir que funcione para muchos tipos de publicaciones diferentes, pero en aras de la claridad, prácticamente codifiqué todo. Por supuesto, puede usarlo como punto de partida para su propio shortcode:
<?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);
}
}
Un post-product.php
archivo de plantilla de tema
A continuación, deberá crear un archivo de plantilla de tema que solo muestre un producto. La función que implementa el shortcode 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>
Agregar 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 antes con los menús de WordPress 3.0 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.
- Haga 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 de "Productos ".
- Haga clic en "Agregar al menú"
- Haga clic en "Guardar menú"
(fuente: mikeschinkel.com )
Finalmente, la salida
Y así es como se vería una lista básica de productos:
(fuente: mikeschinkel.com )
current-menu-item
clase no se aplica a los productos 'li
Esto no es compatible de forma nativa con WordPress. Sin embargo, podría agregar esto a su archivo functions.php y funcionaría:
Eso le dará example.com/products/ como una lista de productos. A partir de ahí, solo agrega un enlace personalizado a su menú.
Sin embargo, si desea un archivo verdadero (por mes, año, etc.) con feeds, necesita un código más detallado. Si sus 'productos' son un tipo de publicación no jerárquica (parece que deberían ser), puede usar mi complemento:
http://www.wordpress.org/extend/plugins/custom-post-permalinks/
Eso le brinda campos adicionales para personalizar sus enlaces permanentes (como puede hacerlo con publicaciones de blog), y le dará la posibilidad de personalizar enlaces permanentes según la categoría, el autor, el mes, el año, el tipo de publicación, etc.
fuente
Debería asignar una taxonomía al tipo de publicación "productos" y luego agregar el término de la taxonomía a uno de sus menús personalizados que luego llevaría al usuario a una página de archivo de todos los productos bajo la taxonomía utilizada.
Ejemplo Tengo un tipo de publicación personalizado llamado "Empleos" con una taxonomía etiquetada como "posiciones"
Si quisiera todos los trabajos con el término de taxonomía "Aperturas actuales", lo seleccionaría y lo agregaría al menú.
Si necesita tener todos sus tipos de publicación de "productos" en la página de archivo, puede asignar una taxonomía principal a todos ellos para que todos puedan figurar en la página de archivo.
fuente
Creo que es una mejor solución para crear a través de un tipo de publicación personalizada un tipo de publicación Archivar y mover las publicaciones archivadas en este archivo. Agregue también el post_type actual a la postmeta de este nuevo post_type para deshacer esto. He escrito un complemento para esto y actual, puede ver esto, sin hojas de estilo, imágenes y archivo de idioma, en gist.github / 978690 .
fuente