• Saltar a la navegación principal
  • Saltar al contenido principal
  • Saltar a la barra lateral principal

DecodeCMS

Tu WordPress a otro Nivel ...

  • Acerca de
  • Contacto
  • Inicio
  • Tutoriales
    • Themes
    • Plugins
    • Core
    • Recursos
  • Cursos
  • Acceder
    • Mis cursos
    • Mi Cuenta
    • Acceder
Inicio / Tutoriales / Core / Excluir entradas en el inicio de WordPress

Excluir entradas en el inicio de WordPress

Excluir entradas en el inicio de WordPress

[ 9 octubre 2018 ] [ Autor: Jhon Marreros Guzmán ][ Core - Intermedio] [ ]

funcionalidad

¿Me ayudas a llegar a más gente?

Twittear Compartir LinkedIn WhatsApp

En un artículo anterior vimos cómo excluir páginas de la búsqueda de WordPress, en este caso, siguiendo la misma lógica, veremos cómo excluir entradas en el loop de inicio de un sitio WordPress

 

Resultado Final

Eliminar entrada, sitio ejemplo

 

Generalidades

WordPress por defecto tiene la opción de mostrar en el inicio de tu sitio o una lista de las entradas recientes o una página estática. Lo puedes configurar desde Ajustes > Lectura, tal como se muestra en la siguiente imagen:

Ajustes página frontal

 
Sin embargo al mostrar las entradas recientes no es posible configurar qué entradas excluir. En este artículo veremos cómo realizar esto a través de código.

 

Excluir entradas específicas

Para excluir entradas específicas necesitas conocer antes el ID de las entradas, en el siguiente código hemos supuesto que quieres ocultar tres entradas, con los ID 1, 2 y 3

Puedes averiguar el ID de una entrada desde el backend al editar una entrada la url que se crea tiene el ID en el parámetro post. Por ejemplo : http://dominio.com/wp-admin/post.php?post=XXX&action=edit

add_action( 'pre_get_posts', 'dcms_eliminar_entradas_home_page' );

function dcms_eliminar_entradas_home_page( $query ){
    if( $query->is_main_query() && $query->is_home() ) {
        $query->set( 'post__not_in', array( 1, 2, 3 ) );
    }
}

 
En el código anterior:

  • Usamos el hook pre_get_posts, este hook se ejecuta luego que el objeto query es creado pero antes de que la consulta sea ejecutada
  • El hook hace referencia a la función dcms_eliminar_entradas_home_page la cual pasa como parámetro el objeto query
  • Dentro de la función podemos modificar la consulta, sin embargo antes nos aseguramos de que sea la consulta principal del home
  • Luego hacemos las modificaciones usando los argumentos de la clase WP Query

 

Excluir categorías específicas

En base al código anterior podemos hacer modificaciones usando los argumentos de la clase WP Query, en el caso de que quieras excluir todas las entradas de una categoría específica el código sería como se muestra a continuación.

Puedes averiguar el ID de una categoría desde el backend al editar una categoría la url que se crea tiene el ID en el parámetro tag_ID.

add_action( 'pre_get_posts', 'dcms_eliminar_entradas_home_page' );

function dcms_eliminar_entradas_home_page( $query ){
    if( $query->is_main_query() && $query->is_home() ) {
        $query->set('category__not_in',array(1));
    }
}


Este código es similar al código inicial, sin embargo ahora consideramos category__not_in

Adicional a los parámetros que hemos usado: post__not_in y category__not_in, puedes usar diferentes argumentos que te permite la clase WP Query

 

Conclusión

Como has podido ver, tienes la flexibilidad de excluir entradas individuales, o todas las entradas de una categoría específica en la página de inicio de tu sitio WordPress a través de código y evitar el uso de plugins adicionales para realizar esto.

 

¿Aún con dudas?, en el siguiente video se detallan los puntos anteriores.

Suscríbete a DecodeCMS:  

 

¿Me ayudas a llegar a más gente?

Twittear Compartir LinkedIn WhatsApp

Artículos Relacionados

  • Cómo eliminar todos los productos de WooCommerceCómo eliminar todos los productos de WooCommerce
  • Agrupar los resultados de búsqueda en WordPressAgrupar los resultados de búsqueda en WordPress
  • tipos de complementos de WordPress5 tipos de complementos de WordPress
  • Sincronizar WooCommerce y Google SheetsSincronizar WooCommerce y Google Sheets
Valora este artículo : 1 barra2 barras3 barras4 barras5 barras (4 votos, promedio: 4,75 de 5)
Cargando...

Interacciones con los lectores

Comentarios

  1. Jaher

    2 abril, 2021

    Buen Artículo!!
    Lo ensayé y funcionó perfecto.
    Si el post que deseo ocultar está en un CPT creado con nombre “X” no en entradas como qué debo cambiar en el código anterior para que funcione igual.

    Muchas gracias!!

    • Jhon Marreros Guzmán

      4 abril, 2021

      Hola, revisa la documentación de la clase WP_Query
      https://developer.wordpress.org/reference/classes/wp_query/
      Busca “Display multiple post types, including custom post types”, verás que puedes pasar como argumento los tipos de datos que quieres.

  2. Poster

    10 octubre, 2021

    Probé excluir un post y no pasa nada. Con categoría si funciona.

    • Jhon Marreros Guzmán

      11 octubre, 2021

      Hola, asegúrate que el ID del post que esta en los parámetros del $query sea el correcto.

Para escribir código envolver con: <pre class="language-xxx"><code> </code></pre> ,reemplaza las xxx (php, css, html)

*

* Gravatar habilitado

Barra lateral principal

Presentación

Curso Decodifica WordPress

Únete a DecodeCMS

Recibirás como regalo:

Guia práctica con video:
¿Quieres agregar código a WordPress? Revisa las diferentes opciones que tienes.Ver más

Jooble
Alojamiento Wordpress

Niveles

Básico Intermedio Avanzado

Etiquetas

accesibilidad css dashboard editor error funcionalidad herramientas imagen js librería mejoras optimización seguridad social woocommerce

Populares

Insertar Font Awesome en WordPress

Agregar archivos de fuentes tipográficas en WordPress

Personalizar página de gracias de WooCommerce

Agregar el campo de cantidad en la lista de productos de WooCommerce

© logo decode pie
Política de Privacidad | Política de devoluciones
Copyrigth 2023 Todos los derechos reservados