Normalmente, cuando echas un vistazo a la página de inicio de cualquier blog lo que encuentras es una galería con las últimas entradas ordenadas cronológicamente. Sin embargo, en algunas ocasiones es posible que estés interesado en limitar esto y quieras que aparezcan solo los posts que pertenezcan a una o varias categorías concretas. Quizás estés interesado en que aparezcan las entradas de todas las categorías menos de una en concreto. Si es así, veremos aquí cómo puedes hacerlo echando mano de un par de códigos PHP.
En primer lugar, lo que tendrías que hacer es editar el archivo que se encarga de listar los últimos posts. Este archivo puede variar de un tema a otro, puede ser index.php, home.php u otro. En tu caso concreto tendrías que asegurarte antes de realizar el cambio.
Configurar las categorías que queremos que se muestren
Una vez que estés editando el archivo que se encarga de mostrar la página de inicio de tu blog, deberías buscar un código similar a este:
<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
Traduciendo a lenguaje humano, lo que vienen a decir las líneas anteriores es que ‘mientras haya posts que mostrar, ve listándolos’.
Lo que vamos a hacer ahora es, justo delante de estas líneas, decirle a WordPress qué posts son los que tiene que listar, es decir, en nuestro caso que muestre solo los posts de las categorías que nos interese en lugar de mostrar todos los posts que existan.
Para ello podemos utilizar la siguiente línea de código:
<?php query_posts('category_name=ordenadores'); ?>
En el ejemplo anterior, lo que hacemos es decirle a WordPress a través de la función query_posts que nos interesan sólo los posts de las categorías con nombre ‘ordenadores’. El código al completo quedaría así:
<?php query_posts('category_name=ordenadores'); ?>
<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
Fíjate que en primer lugar le indicamos a WordPress qué posts debe listar y, a continuación, le decimos que comience a listarlos. Así de sencillo.
Imaginemos ahora que queremos que se listen posts que pertenecen a varias categorías, en ese caso podríamos añadirlas así:
<?php query_posts('category_name=ordenadores, tablets'); ?>
Aquí indicamos que queremos listar dos categorías concretas, ordenadores y tablets.
Podrías seguir añadiendo más categorías y dejar fuera aquella categoría que no quieras que se liste, así que el truco te sirve también para sacar del listado los posts de ciertas categorías.
Otra opción es la de utilizar el número de la categoría en caso de que la conozcas. Cada categoría que crees en tu blog dispone de un número diferente, así que puedes seleccionarlo así:
<?php query_posts('cat=9, 10'); ?>
El ejemplo anterior mostraría las categorías con los números 9 y 10, en este caso esta opción puede ser más práctica y rápida en el caso de que vayas a indicar una buena cantidad de categorías en el código.
Mostrar posts solo de una tag concreta
En el caso de las tags o etiquetas también puedes hacerlo de forma similar:
<?php query_posts('tag=dell'); ?>
En el ejemplo anterior tienes la forma de filtrar los posts que se muestran sólo a los de la categoría ‘dell’. Básicamente es un parecido al código que utilizas para filtrar por categoría.
Limitar el número de posts
Como extra, veamos otra posibilidad extra, la de establecer el número de posts que se van a mostrar, parea ello solo hay que modificar ligeramente los códigos anteriores añadiendo el parámetro ‘showposts’:
<?php query_posts('category_name=ordenadores&showposts=10'); ?>
Fíjate que showposts va separado del resto por el código &, en el ejemplo anterior se listarían 10 posts.
En definitiva
Mencionar aquí que este truco puedes aplicarlo no solo en el index.php, sino en otros puntos del blog donde se listen artículos, por ejemplo archivos o cualquier otro.
Y si quisiera escoger varias categorías al tiempo para mostrar por nombre con un solo post por categoría, con nombre se puede hacer u obligatoriamente debo hacerlo por número de categoría
Hola! Gracias por tu aporte!! En verdad funciona, sin embargo me trae un gran problema que no sé como solucionarlo! 🙁 El link a «entradas anteriores» me manda a la página 2 de entradas, sin embargo en la página 2 me vuelve a mostrar el contenido de la pagina 1, igual la página 3,4,5, etc. Sólo me muestran el contenido de la página 1. Espero me puedas ayudar. Abrazos!!