SmythSys IT Consulting

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
  2. Muchas gracias por el aporte!

    Lo que yo quería era que se muestren los posts que sean de 2 categorias concretas, por ejemplo “Zapatos” y “Azules”, de esta forma, se verán sólo los zapatos azules, no todos los zapatos, ni toda la ropa azul. Solo los zapatos azules

    Se puede? como?

    Gracias

    Responder
  3. Hola amigos, como estan. Tengo una duda con respecto a lo que explicaste en la última parte, lo del “apartado adecuado” y todo lo demás, no entiendo bien el proceso. Soy nuevo en esto. Si me ayudaran, se los agradecería. Saludos

    Responder
    • Una vez creada la plantilla sólo tienes que crear la página como una página normal y en el desplegable que pone plantilla elegir la que has creado con anterioridad.

      Responder
  4. Hola, quiero darte las gracias porque me ha servido de mucho. Sencillo y bien explicado, simplemente perfecto, lo que buscaba. Muchas gracias, un saludo

    Responder
  5. Hola smythsys, llego un poquito tarde pero te quería comentar:
    Tengo una web con una página llamada Blog, dentro van las últimas entradas y ya sabes puedes llegar a una en concreto. Hasta ahí todo normal. El problema surge cuando quiero acceder desde categorías. Esta entrada no puedo editarla, aparece una imagen enorme pegada a la cabecera y ya por debajo las entradas con esa categoría. El caso es que quiero evitar que mis categorías acaben en una página así.
    ¿Haciendo lo que nos cuentas en el tutorial sería posible?
    Lo siento por la ignorancia, pero html básico y ni idea de php jajaja
    Mil gracias!!!

    Responder
    • María, por lo que entiendo las categorías aparecen en una página de la que no te gusta el formato. Esto es tema de la plantilla, está usando la página por defecto para ello. Esto no te lo soluciona porque también usaría esa plantilla. Si no sabes editar html para ediarla tienes dos soluciones:
      a) Cambia la plantilla
      b) Crear un menú de categorías propio y cambiar cada página con Content Views (lo hemos puesto en el blog). Pero es muy latoso.
      Sinceramente, no creo que una empresa te facture mucho por cambiar sólo eso.

      Responder
  6. Hola! Gracias por esta información. Hice lo indicado y funcionó, sin embargo me muestra los posts completos y aunque intenté con el código mostrado luego, no me funciona. Siguen apareciendo los posts completos. Me gustaría poder mostrar un listado con titulo, imagen y extracto solamente cuando ingrese en la página. Sabes como puedo hacer eso? Gracias

    Responder

Deja un comentario

Resumen de nuestra Política de Privacidad

  • Responsable: SmythSys IT Consulting SLNE.
  • Finalidad: Gestionar y moderar los comentarios.
  • Legitimación: Necesitas dar tu consentimiento para publicar un comentario.
  • Destinatarios: Tus datos se alojan en los servidores de OVH.
  • Derechos: Tienes derecho a acceder, rectificar, limitar y suprimir los datos en la dirección del responsable (en nuestra política de privacidad).