¿Quieres valorar este artículo? Gracias

1 estrella2 estrellas3 estrellas4 estrellas5 estrellas (1 votos, promedio: 5,00 de 5)
Cargando…

Última modificación: 29 marzo 2017

Modificar los resultados de búsqueda en WordPress

Seguimos con la serie de artículos dedicados a modificar el buscador en WordPress. Ayer expliqué varios métodos para modificar su apariencia y algunos plugins que modifican la funcionalidad del buscador. Con el post de hoy aprenderemos cómo modificar los resultados de búsqueda en WordPress.

Modificar el buscador en WordPress

Por defecto WordPress realiza las búsquedas en post, páginas… hoy voy a explicar como limitar los resultados: a post, categorías de un post… y en el próxima entrada veremos cómo modificar la página de resultados de búsqueda en WordPress.

Función para modificar los resultados de búsqueda en WordPress

Vamos a utilizar un hook o gancho, disponible en WordPress que nos ayuda a filtrar los resultados de la consulta principal. En concreto, vamos a hacer uso de pre_get_posts.

pre_get_posts

Este hook se llama después de crear la query principal y antes de visualizarla por pantalla. Esto nos permite modificar la Query para que únicamente muestre los resultados que nos interesa.

El objeto $query es pasado a la función por referencia, no necesitas declarar dentro de tu función una variable global ni un valor de retorno. Pero cuidado, cualquier cambio que realicemos sobre la consulta dentro de la función, modifica la query.

Para evitar que se altere la consulta principal a nivel general, empleamos funciones condicionales tipo: 

para indicar que aplique el hook cuando es una consulta.

Lo entenderás mejor con los siguientes ejemplos:

Ejemplo 1: Mostrar resultados de búsqueda de los post pertenecientes a la categoría con slug “wordpress”

El código es muy sencillo, declaramos una nueva función “busqueda_categoria_nombre“. Si la $query es la principal y es la $query de búsqueda entonces, que seleccione de todos los resultados los post con nombre de categoría “wordpress”.

La última línea add_action, indica que cuando se produzca el evento ($query lista) queremos modificar la consulta. Esta línea de código es necesaria para que la función se ejecuté.

Voy a escribir de nuevo la función con un nuevo condicional !is_admin(). Este condicional es importante porque el administrador de WordPress también emplea la función de búsqueda y no nos interesa limitarla a los post. is_admin(), comprueba si estamos en el Dashboard de WordPress. Es recomendable emplear esta estructura en todos los códigos.

Ejemplo 2: Mostrar resultados de búsqueda de los post pertenecientes a la categoría con ID=5

Ejemplo 3: Modificar los resultados de búsqueda en WordPress para que únicamente muestre los post (excluir páginas de la búsqueda)

La mayoría de los usuarios de nuestro blog, cuando realizan algún tipo de búsqueda en el mismo, demandan artículos o entradas sobre un tema concreto y no páginas estáticas. 

Ejemplo 3: Mostrar Custom Post Types (entradas personalizadas)

Si tienes algún tipo de entrada personalizada en tu blog: libros, eventos, películas… puedes declarar en la función un array de tipos para que se muestren en los resultados de búsqueda: array(‘post’,’libros’,’eventos’,’peliculas’);

Copia y pega el código en el archivo functions.php de tu tema. Recuerda que para no perder las modificaciones con actualizaciones del tema, siempre aconsejo trabajar con un tema hijo.

Hasta aquí hemos llegado con la entrada de hoy. Puedes modificar cualquiera de los códigos explicados para adaptarlo a las necesidades de tu proyecto. Si se te resiste el código no dudes en pedir ayuda empleando el formulario de comentarios.

Dejo para mañana el tercer artículo sobre modificar los resultados de búsqueda en WordPress, aprenderemos a realizar las modificaciones sobre la página de resultados de búsqueda “search.php“.

Te puede ayudar:

Cómo modificar el buscador en WordPress

Añadir buscador a la barra de menú WordPress.

Plugins WordPress para crear un tema hijo.

Nerea Liebana

Lph by Nerea Liébana

¿Quieres suscribirte al Newsletter?

Web Hosting

Últimos artículos