Crear un buscador avanzado en WordPress

Normalmente, casi todos los sitios web utilizan la función de búsqueda suministrada por WordPress. Funciona bien con las necesidades básicas. Pero si quieres utilizar funciones avanzadas para mejorar la experiencia del usuario, la caja de búsqueda por defecto no es suficiente.

Por ejemplo:

    • Sugerir automáticamente resultados de búsqueda cuando los usuarios introducen cualquier carácter en la caja de búsqueda. Es similar a cómo Google sugiere a la gente cuando busca. La sugerencia debe ser rápida para tener la mejor experiencia de usuario.
    • Tener la capacidad de buscar desde varios campos personalizados de los artículos. La función de búsqueda por defecto de WordPress sólo utiliza el contexto del título y el contenido de los artículos. No soporta la búsqueda desde campos personalizados.
    • Búsqueda desde muchos tipos de post.

Este artículo trata de crear una caja de búsqueda así. Puedes ver un ejemplo en metabox.io. En este sitio, la caja de búsqueda de la cabecera te sugerirá con productos y artículos según las palabras clave que introduzcas.


Si buscas en el foro de soporte, la sugerencia son temas en el foro:

Y si se busca en la sección Blog, sólo se sugieren los posts.



Comparar plugins de búsqueda en WordPress

Primero, vamos a echar un vistazo a algunos plugins de búsqueda populares en WordPress. Luego, conoceremos si tienen pros, contras y satisfacen tus necesidades.



SearchWP

SearchWP es un plugin premium (99$/año) que se especializa en búsquedas. La mejor ventaja de este plugin es que nos permite buscar a partir de muchos campos personalizados y establecer el peso de los mismos (sabiendo así cuáles son los campos más importantes). De esta manera, los resultados de la búsqueda serán los más adecuados a lo que los usuarios están buscando.

Cuando se utiliza SearchWP, se puede utilizar el formulario de búsqueda por defecto de WordPress. No tiene la función de sugerencia de búsqueda. Para incluir la sugerencia, debes instalar el plugin SearchWP Live Ajax Search. Sin embargo, este plugin tiene una velocidad de sugerencia lenta porque utiliza el Ajax de WordPress. Por lo tanto, si quieres usar SearchWP, debes tener un buen hosting/servidor para tener mejor velocidad de sugerencia.



Relevanssi

Relevanssi es otro famoso plugin para realizar búsquedas. Al igual que SearchWP, soporta la búsqueda a partir de campos personalizados y la configuración del peso. También soporta la búsqueda difusa. Esto significa que si no introduces las palabras clave completas, todavía devuelve los artículos que coinciden con tus palabras parciales.

Sin embargo, la interfaz de usuario de Relevanssi no es tan buena como la de Search WP. Tampoco soporta la sugerencia de resultados de búsqueda. Si quieres esta función, puedes combinar SearchWP Live Ajax Search con Relevanssi, como hace SearchWP.

Relevanssi también tiene una versión PRO ($99/año) con algunas características avanzadas como la búsqueda a partir de PDF, DOCX, o contenido de términos. Sin embargo, estas características no son tan impresionantes.



Ajax Search

Ajax Search es un plugin especializado en sugerencias rápidas de resultados de búsqueda. Este plugin tiene un montón de opciones para la búsqueda rápida como plantillas de visualización de resultados. Además, Ajax Search también permite a los usuarios buscar desde muchos tipos de post diferentes.

Ajax Search tiene una versión PRO (36$/de por vida). Tiene una función premium que permite a los usuarios buscar desde campos personalizados y muchos tipos de documentos. También tiene opciones más avanzadas.

Ajax Search es más suave que los 2 plugins anteriores. Puede ser causado por su especialización en la función de sugerencia para los resultados de búsqueda. Sin embargo, la interfaz de usuario de este plugin no es tan bonita y amigable. Además, utiliza Ajax de WordPress para la función de sugerencia, por lo que su velocidad es bastante lenta. Tienes que esperar 3–5s para ver las sugerencias.



ElasticPress

ElasticPress es un plugin gratuito que utiliza elasticsearch para realizar búsquedas rápidas. Elasticsearch es una técnica de búsqueda que encuentra todo tipo de contenido con una velocidad casi en tiempo real.

Usar elasticsearch satisface casi todas nuestras necesidades. Sin embargo, esta técnica solicita un servidor para elasticsearch. Este servidor debe ser configurado correctamente. Después de eso, debe instalar ElasticPress para conectarse al servidor. La desventaja de esta técnica es el gran costo y esfuerzo para mantener un servidor para elasticsearch.



Jetpack Search

Jetpack Search ($5/mes) es una característica del plugin Jetpack. Esta característica utiliza elasticsearch de Automatic (la empresa que desarrolló Jetpack). Por lo tanto, usted no necesita gastar tiempo construyendo, configurando y manteniendo el servidor para elasticsearch. Debido a que utiliza elasticsearch, proporciona todas las características esenciales y una buena experiencia.


La primera desventaja de esta forma es que debes instalar Jetpack, lo cual tal vez no quieras porque tiene muchas otras características y sincroniza automáticamente tus datos con el servidor de Automattic. La segunda desventaja es el alto costo. El coste dependerá del número de registros que tengas (mínimo de 5$/mes).



Búsqueda rápida en WordPress

Para superar las desventajas anteriores, me gustaría introducir una nueva forma, que cumpla con todos los siguientes requisitos:

    • Usar elasticsearch

.

    • La sugerencia de resultados de búsqueda es muy rápida, casi en tiempo real

.

    • Buscar desde muchos campos personalizados

.

    • Configurar el peso de los campos personalizados

.

La solución en este caso es utilizar Algolia, un servicio de búsqueda dedicado. Algolia tiene las siguientes ventajas:

  • Usa elasticsearch;
  • Hay un plan para 10.000 búsquedas/mes y 10.000 registros/mes. Este límite es bastante adecuado para sitios web medianos y pequeños. En el caso de metabox.io, es bastante para usar. Si quieres usar más, debes elegir un plan de pago por uso;
  • Tiene plugins para WordPress;
  • Buena personalización.

Para integrar Algolia en WordPress, vamos a hacer lo siguiente:



Registrar una cuenta en Algolia

.Primero, tienes que registrarte para obtener una cuenta (gratuita) en algolia.com. Después, ir a la sección Claves API y obtener la información: ID de la aplicación, Clave de API de sólo búsqueda, Clave de API de administración de la siguiente manera:



Instalar el plugin WP Search con Algolia

Después de tener una cuenta y las API Keys de Algolia, entra en tu sitio web y ve a Admin Dashboard > Plugins > Add New luego instala WP Search with Algolia.


¡No olvides activar este plugin!

Este plugin es una versión fork del plugin oficial de Algolia. Sin embargo, Algolia ha dejado de desarrollar el plugin, por lo que la empresa WebDevStudios ha bifurcado el plugin y lo ha mantenido hasta ahora. Actualmente, este es el mejor plugin de soporte de Algolia.



Configura el plugin WP Search con Algolia

Después de activar el plugin, dirígete a Algolia Search > Configuración, luego ingresa las Claves API que tomaste de la página de perfil de Algolia en el paso 1.


Para habilitar la función de sugerencias, ve a Algolia Search > Autocompletar y habilítala a través de la casilla Habilitar autocompletar. En esta página de configuración, verás una lista de tipos de datos que Algolia admite para buscar, incluyendo tipos de post, taxonomías y usuarios. Sólo tienes que seleccionar los tipos de datos que deseas.


Tenga en cuenta que Algolia tiene un límite de datos indexados en la edición gratuita. Es de 10.000 registros/mes. Por lo tanto, si selecciona demasiados tipos de datos, puede superar este límite y pagar una cuota por ello.

Después de seleccionar el tipo de datos, puede elegir reindexar los datos pulsando el botón Reindexar. De hecho, esta acción es para sincronizar los datos con el servidor de Algolia. Es necesario hacerlo una sola vez. Luego, cada vez que edites o escribas un nuevo post, el plugin te ayudará a empujar los datos automáticamente.

Para su referencia rápida, aquí está la documentación de Algolia.



Ver y Personalizar la Búsqueda Campos

Para ver si los datos están sincronizados correctamente, puedes ir a la página del perfil en Algolia, y luego ir a la sección de Índices. Aquí verá los siguientes tipos de datos:


Para cada tipo de datos, aunque el plugin empuja mucha información (como el título, la fecha, el contenido, la taxonomía, etc.), puedes configurarlo para buscar por algunos campos personalizados determinados y su prioridad. Para ello, haz clic en la pestaña Configuración, donde verás una lista de campos personalizados como la siguiente:


Aquí puedes añadir, eliminar y ordenar campos.

En el menú de la izquierda, hay muchas opciones como establecer la prioridad de los criterios de búsqueda (Ranking y Ordenación), permitir la búsqueda con palabras mal escritas (Typo-tolerance), . Puede explorar más para encontrar lo que se ajuste a sus necesidades. En el caso de metabox.io, usar la configuración por defecto es suficiente, así que no cambio nada.



Personalizar la caja de búsqueda de WordPress

Ahora, vuelve a tu sitio web. Por defecto, cuando el Autocompletado está activado, el plugin WP Search with Algolia se integrará automáticamente con la caja de búsqueda del tema. Especialmente, esta característica funciona con la mayoría de temas de WordPress.

Cuando los usuarios escriban algo en la caja de búsqueda, obtendrán esto:

Sin embargo, si quieres personalizar la lista, o simplemente quieres mostrar los resultados en algún tipo de post, necesitas personalizar un poco el código. Estos son los pasos básicos:

    • En la carpeta de tu tema, crea una carpeta llamada algolia;

.

    • Copia el archivo wp-content/plugins/wp-search-with-algolia/templates/autocomplete.php de la carpeta del plugin y luego pégalo en la carpeta algolia;

.

    • Edita el archivo autocomplete.php.

Nota que este archivo autocomplete.php utiliza la plantilla JavaScript de Underscores, por lo que debes aprender un poco sobre ella. El plugin permite personalizar la visualización de cada parte de la lista de sugerencias, como una lista de posts, usuarios, títulos, . Ve a la documentación de Algolia para más detalles.

Puedes consultar el archivo autocomplete.php que hemos creado para metabox.io aquí:

https://gist.github.com/rilwis/2f9f1690a29fc65d04937b7b9dfd9027

Aquí personalizo mucho para hacer cajas de búsqueda en diferentes lugares para sugerir diferentes contenidos:

    • La caja de búsqueda en la sección de cabecera sugiere productos y artículos

.

    • La caja de búsqueda en la sección del blog sólo sugiere artículos

.

    • El cuadro de búsqueda en la sección del foro sólo sugiere temas



Últimas palabras

La búsqueda es una parte importante de un sitio web, especialmente para los sitios web que tienen muchos tipos de información. Encontrar el contenido adecuado rápidamente no es una tarea fácil. Con el análisis y los métodos mencionados en este artículo, esperamos que encuentres la manera de ajustarte a las necesidades de búsqueda de tu sitio web.

Categorías : # wordpress

Deja una respuesta

Tu dirección de correo electrónico no será publicada.