Mejorar el buscador WordPress añadiendo un sistema de búsqueda avanzada que permite buscar por más términos, como por ejemplo los campos personalizados, sólo en títulos, etc.
Existen varias opciones, la primera y más sencilla es el uso de plugins recomendados para mejorar la búsqueda de WordPress:
La segunda por código. En el artículo Ajustes avanzados de búsqueda en WordPress de AyudaWP tenemos varios ejemplos.
Utilizando la función de búsqueda en WordPress
Las búsquedas en WordPress funcionan de una forma muy sencilla. Cuando utilizas la variable «s» como parte de la URL (pj.: https://yanez.pro/?s=) en un sitio web, WordPress usará la plantilla search.php y mostrará una lista con los términos indicados. Lo vemos en un ejemplo:
WP mostrará todas las páginas, entradas u otros tipos de contenidos que contengan las palabras ‘seguridad’ y ‘wordpress’ en su título o contenidos.
El punto fuerte de WordPress en la búsqueda es que permite añadir variables para filtrar y obtener resultados más concretos. Es función propia del WP y no es necesario el uso de plugins.
Crear unbuscador avanzado en WordPress
Al realizar una búsqueda además del texto de búsqueda también se pueden añadir variables para personalizar la búsqueda (Con WP_Querypermite realizar todas las consultas a la base de datos durante la carga de una página). Estas son la variables más útiles:
- post_type: Indica el tipo de post por el cual filtrar la consulta, como por ejemplo ‘post‘ o ‘page‘.
- author: La ID identificando al autor de la entrada o página.
- author_name: El nombre del autor
- cat: Indica la ID de una categoría.
- category_name: Indica el nombre de una categoría.
- tag: Indica el nombre de una etiqueta asociada a una entrada.
- tag_id: Indica la ID de la etiqueta asociada a una entrada.
Ordenar los resultados
- orderby: Indica el campo por el cual ordenar los resultados. Puede ser ‘title‘, ‘name‘, ‘date‘ o ‘id‘, entre otros.
- order: Indica el orden de los resultados. Puede ser ASC o DESC.
Un ejemplo con lo explicado anteriormente:
El ejemplo mostrará todas las entradas que contengan la palabra ‘wordpress‘, pertenecientes a la categoría de MySql (categoría 16 en esta web), y ordenadas por título de forma ascendente. .
Cómo añadir un buscador avanzado
Ya hemos explicado como funcionan las búsquedas avanzadas en WordPress sin el uso de plugins. Aunque al comienzo de este post tienes una lista de plugins dedicados a mejorar este aspecto.
Añadir una búsqueda avanzada o personalizada a WP es tan simple como utilizar un widget de texto que viene por defecto en todas las instalaciones de WordPress. Sólo hay que añadir el siguiente código para crear un formulario búsqueda:
<form action="nombredelaweb" method="get"> <input type="text" name="s" value=""> <input type="submit" value="Buscar"> </form>
Tras cambiar nombredelawebpor la dirección URL de tu página web y añadir el código del ejemplo al widget, tendrás un formulario de búsqueda normal para realizar consultas en la web. Ahora bien, para convertir el buscador en un buscador avanzado, habrá que añadir elementos input con los valores que desees. Este es un ejemplo:
<input type="hidden" name="post_type" value="post"/>
Esta línea añade la opción de buscar en los post de la web, es decir, que no buscará ni en Páginas, Custom Post Type u otros elementos. Vea un ejemplo completo:
<form action=»https://yanez.pro» method=»get»>
<input type=»text» name=»s» value=»»>
<input type=»hidden» name=»post_type» value=»post»/>
<input type=»hidden» name=»category_name» value=»mysql»/>
<input type=»submit» value=»Buscar»>
</form>