Logo WordPress

Cómo excluir posts de una categoría de la página de inicio de WordPress

publicado en: Aplicaciones Web, PHP, WordPress | 0
 
 

Introducción
En ocasiones, nos surge la necesidad de publicar un post (entrada o artículo), pero no nos interesa que aparezcan en la página principal o página de inicio (home) de nuestro sitio web con WordPress.

En esta entrada, mostraremos como conseguirlo haciendo uso de una función en PHP que incluiremos en el fichero functions.php de nuestro tema hijo.

Existen plugins que pueden hacer este trabajo, pero con una simple función lo tenemos conseguido.
 
 
Imaginemos una situación de ejemplo
Imaginemos que tenemos posts (entradas) del tipo página en construcción, un listado, una tabla, etc, que son necesarios para el funcionamiento de nuestro sitio web, pero no nos interesa que aparezcan en los widgets de Entradas recientes

imagen captura de pantalla de entradas recientes de WordPress
Ejemplo de listado de Entradas recientes
Haz clic en la imagen para aumentarla
 
…o en el Carrusel de entradas.
imagen captura de pantalla de Carrusel de entradas de WordPress
Ejemplo de carrusel de Entradas recientes
Haz clic en la imagen para aumentarla
 
¿Cómo conseguirlo?

Pues bien, para conseguirlo tendremos que realizar los siguientes pasos:

  1. Añadir dichas entradas (posts) a una Categoría específica, ya sea una Categoría creada por nosotros, ¿o por qué no?, añadirlas a la Categoría existente en WordPress, por defecto, denominada Sin categoría, valga la redundancia.
  2.  

  3. Averiguar el tag_ID de la Categoría que queremos que no aparezca. Para averiguarlo, utilizaremos alguno de los dos métodos siguientes:
     

    • En nuestro WordPress, vamos al apartado de configuración Entradas -> Categorías, localizamos la Categoría que nos interesa y situamos el puntero del ratón sobre ella. En la parte inferior del navegador web que estemos utilizando veremos el tag_ID que le corresponde.
      imagen de captura de pantalla del tag_ID de una categoría en WordPress
      Haz clic en la imagen para aumentarla
      Como se aprecia en la imagen el tag_ID es el número 1.
    •  

    • Si nuestro navegador web no es capaz de visualizar dicho número, entonces, hacemos clic sobre la Categoría que nos interese y veremos el tag_ID en la barra de direcciones.
      imagen de captura de pantalla del tag_ID de una categoría en WordPress
      Haz clic en la imagen para aumentarla
      Volvemos a ver en la imagen que el tag_ID es el número 1.
  4.  

  5. Inyectaremos el siguiente código al final del fichero functions.php antes del cierre ?>. El archivo functions.php está ubicado en el directorio raíz del tema que estemos utilizando (../../www.midominio.net/wp-content/themes/mitema-hijo/functions.php).
     

    Os aconsejo que utilicéis un tema hijo para no perder los cambios en el fichero functions.php cuando se actualice el tema padre, y por supuesto, hacer copia de seguridad del archivo functions.php antes de realizar los cambios, por si surge algún error y tenemos que restaurar el fichero functions.php.

    /*----------------------------------------------------------------------*/
    /* Excluir categorías de la página de inicio */
    /*----------------------------------------------------------------------*/
    function excluye_categoria($consulta) {
        if ( $consulta->is_home() ) {
            $consulta->set('cat', '-1');
        }
        return $consulta;
    }
    add_filter('pre_get_posts', 'excluye_categoria');

    En el código anterior hemos excluido la categoría con tag_ID=1. Si queremos excluir más categorías, tendríamos que añadirlas en la línea siguiente:

    ...
            $consulta->set('cat', '-1 -39 -123');
    ...

    Nota: no olvidar poner el signo delante del valor tag_ID para excluir la Categoría.

 

Espero que este artículo os haya sido de utilidad. Si pensáis que podéis colaborar para mejorar este artículo, que hay algo erróneo en él o simplemente deseáis comentarlo, por favor, dejad vuestra opinión más abajo.
  Configuración de privacidad y de cookies.
Seguir J. Carlos:

Técnico Informático - Desarrollo Web - Administración de Redes

Técnico Informático. Desarrollo Web. Administración de redes.

Últimas publicaciones de

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.