Excluir las páginas de la búsqueda de WordPress

Cómo evitar que se muestren las páginas en los resultados de las búsquedas de WordPress

Esta semana vamos a aprender a excluir las páginas de la búsqueda realizada en nuestro WordPress. Este artículo complementa al de la semana pasada, donde hemos visto cómo excluir las categorías de las búsquedas.

En primer lugar tenemos que preguntarnos ¿cuándo y por qué podremos necesitar excluir las páginas?. La respuesta es muy sencilla, la mayoría de los usuarios utilizan el buscador interno de las páginas web para buscar información dentro del blog. Es decir, los usuarios suelen necesitar resultados dentro de los artículos o noticias de nuestra página web.

Imagínate que en una tienda virtual buscas por el producto X, entre los resultados de la búsqueda saldría por defecto cualquier página que hable del producto X. No es que sea un mal resultado de búsqueda, pero ¿no sería buena idea “filtrar” un poco la información que vas a mostrar a tu usuario?, es decir, si busca un producto, muéstrale únicamente aquello relacionado realmente con el producto.

Vamos a hacer un ejemplo sencillo: hemos creado una entrada que contiene la palabra contacto.

entrada que contiene la palabra contacto
Entrada que contiene la palabra contacto

Y a continuación, haremos una búsqueda por la palabra contacto. En los resultados de la búsqueda debería salir esta entrada y también la página de Contacto.

Excluir las páginas de la búsqueda de WordPress
Excluir las páginas de la búsqueda de WordPress

Código para excluir las páginas de la búsqueda

Cuando realizas una búsqueda, WordPress no solo busca en páginas y artículos, sino que también busca en Custom Post Types propios (creados por ti), o creados por plugins o incluso creados por tu tema. Debido a esta circunstancia, sería conveniente no mostrar resultados de búsqueda innecesarios.

Para poder filtrar las páginas de los resultados de nuestras búsquedas, utilizaremos el siguiente código:

function modificar_filtro_de_busqueda ($query) {
if ($query->is_search) {
$query->set('post_type', 'post');
}
return $query;
}
add_filter('pre_get_posts','modificar_filtro_de_busqueda');

Lo que hace este código es lo siguiente: crea una función llamada modify_search_filter que modificará los resultados de las búsquedas, mostrando únicamente resultados en los post (es decir, en los artículos de tu blog).

En nuestro ejemplo, si tienes una tienda y sólo quieres mostrar los resultados de las búsquedas sólo dentro de tus productos, tenemos que cambiar el tipo de contenido a buscar en la (tercera) línea: $query->set(‘post_type’, ‘post’);

Aquí cambiamos el tipo de post (en este caso se llama post), por el que necesitemos, en este caso sería product

¿Sencillo, verdad?.

Dónde debemos poner este código

Como siempre que utilizamos código, tenemos que saber en qué lugar concreto de nuestra web debemos colocarlo. Si eres seguidor del blog ya deberías saberlo 😉

Este código tenemos que pegarlo en el archivo functions.php de tu tema activo, o en tu plugin de funciones, del que ya te he hablado en numerosas ocasiones, y que te recomiendo que crees si aún no lo has hecho.

Conclusión

Una vez hechos los cambios propuestos en el artículo, en los resultados de la búsqueda ya no aparece la página de Contacto. Una opción bastante interesante, ya que, en este caso, la aparición de la página de Contacto en los resultados de la búsqueda, no aporta nada a nuestros usuarios.


¿Qué te ha parecido el artículo?. Házmelo saber en los comentarios que tienes más abajo. Estoy deseando leerte.

Por último, si crees que este artículo puede ser interesante para algún amigo tuyo, te agradecería enormemente que lo compartieras con él y con todo el mundo a través de las Redes Sociales.

Puntúa este artículo:
[Total: 0 - Promedio: 0]

Puede que también te interese...

Deja un comentario

Información básica sobre protección de datos
Responsable: Jose González Bueno.
Finalidad: Moderación y publicación de comentarios.
Destinatarios: No se comunican datos a terceros.
Derechos: Tienes derecho a acceder, rectificar, exportar y suprimir tus datos.

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

He leído y acepto la política de privacidad de este sitio. *