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.

 

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

  1. Agradecido, muy bien explicado y oportuno. Me tomo la libertad de hacer una consulta.

    ¿Y si esto mismo lo quiero hacer para otras categorías independientemente, tengo que crear tantas páginas plantilla como categorías quiero listar?
    Me explico. Quiero un menú de categorías, por lo que al hacer click en ellas me enseñe los posts. ¿Tengo que hacer lo mismo repetidamente?
    Gracias por todo y saludos

    Responder
    • Si, si las quieres separadas lo mejor es crear plantillas separadas y entradas de menu que enlacen a ellas. Si quieres que tengan el mismo aspecto copia las plantillas y cambia el nombre de la categoria.
      Si no puedes aprovechar y ser creativo cambiando el aspecto de cada plantilla de página.
      Creo que ya hay plugins para esto pero cuantos mas plugins activos mas lenta va la página. Esto es una solución mas elegante.

      Responder