• Ir a navegación principal
  • Ir al contenido principal
  • Ir a la barra lateral primaria

DecodeCMS

Tu WordPress a otro Nivel ...

  • Acerca de
  • Contacto
  • Inicio
  • Tutoriales
    • Themes
    • Plugins
    • Core
    • Recursos
  • Cursos
Inicio / Tutoriales / Core / Excluir entradas en el inicio de WordPress
Anuncio banner webservi

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

  • Leer datos desde otra base de datos en WordPressLeer datos desde otra base de datos en WordPress
  • Crear un sitio One Page en WordPressCrear un sitio One Page en WordPress
  • Mostrar lista de autores en WordPressMostrar lista de autores en WordPress
  • Añadir código de Google Tag Manager sin plugins en WordPressAñadir código de Google Tag Manager sin plugins en WordPress
Valora este artículo : 1 barra2 barras3 barras4 barras5 barras (4 votos, promedio: 4,75 de 5)
Cargando...

Interacciones con los lectores

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

*

* Gravatar habilitado

Barra lateral primaria

Presentación

Únete a DecodeCMS

Recibirás como regalo:

Guia práctica con video:
Los 5 posibles errores que estas cometiendo cuando trabajas con código en WordPress

Niveles

Básico Intermedio Avanzado

Etiquetas

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

Populares

Desactivar las notificaciones de actualización en WordPress

Empaquetar WordPress con install.php

Mover WordPress manualmente

Eliminar Opciones de Pantalla en WordPress

Recientes

  • Leer datos desde otra base de datos en WordPress
  • Crear un sitio One Page en WordPress
  • Mostrar lista de autores en WordPress
  • Añadir código de Google Tag Manager sin plugins en WordPress
alojamiento wordpress

© logo decode pie Copyright 2021 | Todos los derechos reservados | Política de Privacidad