it-swarm-es.com

¿Crear una página de "Todas las publicaciones" o "Archivos" con WordPress 3.0?

Me gustaría crear una página "Todas las publicaciones" en el blog Ocean Bytes que contiene una lista desordenada de todos los títulos de las publicaciones hasta la fecha, con cada título Hiperenlaces a su entrada de blog.

Parece que hay varios complementos que hacen algo como esto, pero la mayoría aún no incluye Wordpress 3.0+ como compatible, o quieren subcontratar las publicaciones del blog por año y luego por mes, lo que no se desea.

¿Alguna sugerencia para la "mejor manera"?

Gracias.

3
cpuguru

Terminé creando una plantilla de página llamada "allposts-page.php" en la carpeta de Twenty-Ten Themes que contiene el siguiente 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(); ?>

Luego creé una nueva página usando el sistema de administración de Wordpress con un título de "Todas las publicaciones" y seleccioné la plantilla "Todas las publicaciones" del menú desplegable. No necesitaba entrar nada en el cuerpo.

La página resultante se puede encontrar a través de:

www.oceanbytes.org/all-posts/

El valor predeterminado para "wp_get_archives" es "mensual", pero elegí "postbypost" ya que solo quería enumerar todas las publicaciones como en una lista larga. Se pueden encontrar más opciones en el sitio de Wordpress a través de Referencia de funciones/wp get archives

3
cpuguru

Crea un nuevo archivo de plantilla y haz esto como un bucle:

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

Luego solo usa esa plantilla para una página y generará automáticamente la página. Consulte la página del códice para query_posts() para obtener más información sobre cómo cambiar la consulta.

3
John P Bloch

La "Mejor manera" sería con una plantilla de página personalizada. Al igual que index.php recorre todas las publicaciones, puede ejecutar una consulta personalizada para recorrer todo y solo hacer eco de la información que desee (título, URL) al navegador.

Aquí hay algunos buenos tutoriales para crear una plantilla de página personalizada:

3
EAMann