@dotty Como você pode ver por este bilhete do trac: Há deve ser páginas de índice para tipos de postagem personalizados então obviamente a necessidade ainda não foi abordada no núcleo do WordPress.
Tanto @John P Bloch quanto @Chris_O oferecem boas alternativas; Eu vou te dar um terceiro.
A "Produtos" Página
Primeiro, crie uma Página para o seu tipo de postagem personalizada e chame-a de "Produtos" . Isso fornecerá o seguinte URL:
A "Lista de Produtos" Shortcode
Em seguida, crie um Shortcode que você pode incorporar em "Produtos" página. No meu exemplo eu chamei de [product-list]
. Aqui está uma captura de tela de como seria:
Observequeesseshortcodeseriaumótimocandidatoparaadicionarmuitasfuncionalidadesopcionaisepermitirqueelefuncionasseparamuitostiposdiferentesdepostagens,masnointeressedaclareza,praticamentecodifiqueitudo.Vocêpodeusá-locomopontodepartidaparaseupróprioshortcode:
<?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);
}
}
Um arquivo de modelo de tema post-product.php
Em seguida, você precisará criar um arquivo de modelo de tema que exiba apenas um produto. A função que implementa o shortcode nomeia o arquivo de modelo post-product.php
e aqui está um bom ponto 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>
Adicione a opção de menu
Por último, você desejará adicionar a opção de menu. Isso é muito simples, como você pode ver nesta captura de tela (o seguinte pressupõe que você não tenha feito nada com menus do WordPress 3.0 antes e que esteja usando um tema que suporte menus do WordPress 3.0 como Twenty Ten):
- Selecione a opção de menu no menu do administrador.
- Clique no " + " para adicionar um novo menu.
- Digite o nome do seu menu, o que você quiser.
- Clique no botão "Criar menu" (a tela mostra "Salvar menu" , mas será "Criar menu" ao adicionar .)
- Selecione seu novo Menu como sua "Navegação primária" .
- Selecione sua página "Produtos ".
- Clique em "Adicionar ao menu"
- Clique em "Salvar menu"
Finalmente,oresultado
Eaquiestáumalistabásicadeprodutos: