Pregunta

Hay de todo, yo estoy jugando con WordPress 3.0 y dos (2) de las nuevas características, Custom Pon Tipos y Menú Editor .

he comenzado por la creación de un nuevo tipo post llamado "products", como lo has adivinado, esta lista de productos.

Estoy usando la plantilla estándar del pantano y estoy creando un nuevo menú para reemplazar la navegación superior. Por lo que yo puedo ver sólo puedo añadir cierta "productos" a ella, no puedo añadir un "archivo" de los productos. Lo que estoy tratando de hacer es añadir un enlace al menú para ir a una página que enumera todos los productos.

¿Alguna idea de cómo hacer esto?

¿Fue útil?

Solución

@dotty Como se puede ver por este billete trac: < strong> no debería ser páginas de índice de tipos de envíos personalizados tan evidente la necesidad aún no ha sido abordado en WordPress núcleo.

Tanto @ John P Bloch y @Chris_O le dan buenas alternativas; Voy a darle un tercero.

A "Productos" página

En primer lugar crear un página para su de un tipo de mensaje y lo llaman "Productos" . Que le dará la siguiente URL:

http: //example.php/products/

A "Lista de Productos" Código corto

A continuación, cree una Código corto que puede incorporado en la "productos" página. En mi ejemplo he llamado [product-list]. Aquí hay una captura de pantalla de lo que el uso que se vería así:

Página de un producto que utiliza un Código corto para mostrar una lista de los productos en WordPress
(fuente: mikeschinkel.com )

Tenga en cuenta que tal un código corto sería un gran candidato para la adición de una gran cantidad de funcionalidad opcional y lo que le permite el trabajo para muchos tipos diferentes de correos pero en aras de la claridad que prácticamente hardcoded todo. Por supuesto, puede utilizarlo como un punto de partida para su propio código corto:

<?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);
  }
}

Una post-product.php temático archivo de plantilla

A continuación, tendrá que crear un archivo de plantilla tema que sólo se muestra un solo producto. La función que implementa los nombres shortcode la post-product.php archivo de plantilla y aquí es 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ú

Última querrá añadir la opción de menú. Esto es muy sencillo como se puede ver en esta captura de pantalla (lo que sigue asume tienes nada hecho con WordPress 3.0 y menús antes de que está utilizando un tema que soporta WordPress 3.0 menús como Twenty Ten):

  1. Seleccione la opción de menú en el menú de administración.
  2. Haga clic en el " + " para añadir un nuevo menú.
  3. Introduzca su nombre de menú, lo que quiera.
  4. Haga clic en la "Crear menú" de botones (los programas de captura de pantalla "Guardar Menú" pero será "Crear menú" cuando se añade .)
  5. Seleccione su nuevo menú como su "Navegación principal" .
  6. Seleccione su "Productos " página.
  7. Haga clic en "Añadir al menú"
  8. Haga clic en "Guardar Menú"

Adición de una opción de menú Página productos a un sitio de WordPress
(fuente: mikeschinkel.com )

Por último, la salida

Y esto es lo que un producto básico lista podría ser:

una lista de los productos que utilizan un tipo personalizado Publicar en WordPress
(fuente: mikeschinkel.com )

Otros consejos

Esto no es compatible de forma nativa con WordPress. Sin embargo, se podría añadir esto a su archivo functions.php y que funcionaría:

function give_me_a_list_of_products(){
  add_rewrite_rule( 'products/?$', 'index.php?post_type=products', 'top' );
}

add_action( 'init', 'give_me_a_list_of_products' );

Esto le dará example.com/products/~~V~~singular~~2nd como una lista de productos. A partir de ahí, que acaba de añadir un enlace personalizado a su menú.

Sin embargo, si quieres verdadera archivado (por mes, año, etc.) con los alimentos, es necesario un código más detallada. Si sus 'productos' son un tipo de mensaje no jerárquico (parece que debe ser), puede utilizar mi plugin:

http://www.wordpress.org/extend/plugins/custom -post-permalinks /

Esto le da campos adicionales para personalizar los enlaces permanentes (como se hace con las entradas del blog), y le dará la posibilidad de personalizar los enlaces permanentes basadas en la categoría, autor, mes, año, tipo de correos, etc.

Por lo que yo puedo ver que sólo puedo añadir ciertos "productos" a ella, no puedo añadir un "archivo" de los productos. Lo que estoy tratando de hacer es añadir un enlace al menú para ir a una página que enumera todos los productos. ¿Alguna idea de cómo hacer esto?

tendría que asignar una taxonomía de los "productos" tipo de mensaje a continuación, añadir el término taxonomía a uno de sus menús personalizados que luego llevar al usuario a una página de archivo de todos los productos bajo la taxonomía utilizada.

Ejemplo Tengo un tipo de mensaje personalizado denominado "Empleo" con una taxonomía etiquetada "posiciones" text alt

Si quería todos los puestos de trabajo con el término taxonomía "Aberturas actual" Me seleccionarlo y agregarlo al menú. text alt

Si es necesario tener todos sus "productos" tipos de envíos en la página de archivo podría asignar una taxonomía de los padres a todos ellos por lo que todos podrían ser listados en la página de archivo.

Creo, que es una solución mejor para crear a través de correo de un tipo de un tipo de publicación Archivo y mover los mensajes archivados en este archivo. También añadir el post_type actual a la postmeta de esta nueva post_type para deshacer esto. Tengo escribir un plugin para este y la corriente se puede ver esto, sin hojas de estilo, imágenes y archivo de idioma, en gist.github / 978690 .

Licenciado bajo: CC-BY-SA con atribución
scroll top