Gostaria de criar uma página "Todas as postagens" no blog Ocean Bytes que contém uma lista não ordenada de todos os Títulos das postagens até o momento, com cada título hyperlink para o seu blog.
Parece haver vários plugins que fazem algo assim, mas a maioria não lista o Wordpress 3.0+ como suportado ainda, ou eles querem subdividir as postagens do blog por ano e depois por mês, o que não é desejado.
Alguma sugestão para o "melhor caminho"?
THX.
Acabei criando um modelo de página chamado "allposts-page.php" na pasta Twenty-Ten Themes contendo o seguinte código:
<?php
/**
* Template Name: All Posts
*
* A custom page template for displaying all posts.
*
* The "Template Name:" bit above allows this to be selectable
* from a dropdown menu on the edit page screen.
*
* @package WordPress
* @subpackage Twenty_Ten
* @since Twenty Ten 1.0
*/
get_header(); ?>
<div id="container">
<div id="content" role="main">
<h2>Archive of All Posts:</h2>
<ul>
<?php wp_get_archives('type=postbypost'); ?>
</ul>
</div><!-- #content -->
</div><!-- #container -->
<?php get_footer(); ?>
Em seguida, criei uma nova página usando o sistema Admin do Wordpress com o título "Todas as postagens" e selecionei o modelo "Todas as postagens" na lista suspensa. Não precisava entrar em nada no corpo.
A página resultante pode ser encontrada via:
www.oceanbytes.org/all-posts/
O padrão para "wp_get_archives" é "mensalmente", mas eu escolhi "postbypost", pois queria listar todos os posts como na lista longa. Mais opções podem ser encontradas no site do Wordpress via Function Reference/wp get archives
Crie um novo arquivo de modelo e faça isso como o loop:
query_posts( array( 'posts_per_page' => -1, 'post_status' => 'publish' ) );
if( have_posts() ):
echo '<ul>';
while( have_posts() ):
the_post();
echo '<li><a href="';
the_permalink();
echo '">';
the_title();
echo '</a></li>';
endwhile;
echo '</ul>';
endif;
wp_reset_query();
Em seguida, basta usar esse modelo para uma página e ele irá gerar automaticamente a página. Confira a página do códice para query_posts()
para mais informações sobre como alterar a consulta.
A "Melhor maneira" seria com um modelo de página personalizado. Assim como o index.php
faz um loop em todas as postagens, você pode executar uma consulta personalizada para percorrer tudo e apenas ecoar as informações desejadas (título, URL) para o navegador.
Aqui estão alguns bons tutoriais para criar um modelo de página personalizado: