Crear páginas para mostrar post de categorías en wordpress: Category Pages

WordPress cada día me impresiona más por la facilidad de creación de páginas de manera sencilla y su escalabilidad. Eso si, de vez en cuando tiene cosas que faltan.

Un de esas cosas es que es difícil crear apartados sueltos para mostrar artículos sólo de una categoría. Aquí os mostramos cómo de manera sencilla.

    • Hay que entrar por FTP en tu sitio web y en la carpeta de tu plantilla (/sitioweb/wp-content/themes/  y crear un fichero.php como plantilla de tu nueva página. Lo más sencillo es que copies la plantilla de tu página que mejor te venga (normalmente page.php) y la pegues con otro nombre. Llámale algo que te acuerdes (plantillanoticias.php por ejemplo).
    • Después puedes hacer el resto desde WordPress (si tienes correctamente los permisos de escritura) desde Apariencia>Editor.  También lo puedes hacer desde un editr html.
      Desde ahí tiene tienes que:
    • Hacerle saber al sistema que es una plantilla con este código:
      <?php    /* Template Name: Noticias  */;?>
      Donde noticias lo puedes sustituir por lo que quieras.
    • Ahora tienes que filtrar el contenido de los artículos. Antes de lo que WordPress llama the Loop(
      <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>

      Hay que poner el filtro. Un ejemplo sencillo sería:

      <?php  query_posts("category_name=noticias"); ?>
  • Todo esto se puede complicar más, mostrando títulos, imágenes, extractos o contenido. Más información aquí, pero el código sencillo sería algo como este:

<?php /* Template Name: Noticias */;?>
<?php get_header(); ?>
<!– Begin #colleft –>
<div id=”colLeft”>
<h1><?php the_title(); ?></h1>
<?php query_posts(); ?>
<?php query_posts(“category_name=noticias”); ?>
<?php if (have_posts()): while (have_posts()) : the_post(); ?>

<h1><a href=”<?php the_permalink(); ?>”><?php the_title(); ?></a></h1>
<?php the_content(); ?>

<?php endwhile; else: ?>
<p><?php _e(‘Sorry, no posts matched your criteria.’); ?></p>
<?php endif; ?>
<?php comments_template(); ?>

</div>
<!– End #colLeft –>
<?php get_sidebar(); ?>
<?php get_footer(); ?>

  • Luego hay que crear la página en el apartado adecuado, elegir en el desplegable de plantillas la que hemos creado y enlazarlo a algún menú para que se vea en la web.

Espero que os sirva de ayuda.