Crie uma página “All Posts” ou “Archives” com o WordPress 3.0?

3

Gostaria de criar uma página "Todas as postagens" no blog do Google Bytes que contém uma lista não ordenada de todos os Títulos das postagens até o momento, com cada título hiperlinks para sua postagem no 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 sub-inserir as postagens do blog por ano e depois por mês, o que não é desejado.

Alguma sugestão para o "melhor caminho"?

Thx.

    
por cpuguru 31.08.2010 / 17:36

3 respostas

3

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

Eu, então, criei uma nova página usando o sistema Wordpress Admin com o título "All Posts" e selecionei o modelo "All Posts" no menu suspenso. Não precisou digitar nada no corpo.

A página resultante pode ser encontrada em:

www.oceanbytes.org/all-posts /

O padrão para "wp_get_archives" é "mensal", mas eu escolhi "postbypost" porque queria listar todos os posts como na lista longa. Mais opções podem ser encontradas no site do Wordpress via Referência de função / wp obter arquivos

    
por cpuguru 01.09.2010 / 03:24
3

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();

Depois, basta usar esse modelo para uma página e ela gerará automaticamente a página. Confira a página do códice para query_posts() para mais informações sobre como alterar a consulta.

    
por John P Bloch 31.08.2010 / 18:19
3

A "Melhor maneira" seria com um modelo de página personalizado. Assim como 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:

por EAMann 31.08.2010 / 18:20