Búsquedas de documentos en varios idiomas con WPML y Custom Fields Search en WordPress

Si estás trabajando en una web multi-idiomas y quieres subir documentos que tengan campos personalizados, una cosa que vas a querer es un buscador potente que te sirva para hacer las búsquedas en base a esos campos personalizados.

Voy a explicar aquí la forma que yo encontré en base a varios plugins bastante comunes pero que, de inicio, no ofrecen esa opción:

  • WPML (WordPress Multilingual Plugin): es el mejor plugin, sin duda, para lograr que nuestra web esté en varios idiomas. Y sí, es de pago.
  • ACF (Advanced Custom Fields): nos va a permitir crear los campos personalizados para nuestras entradas. Lo mejor que encontré en el plugin es que indicas bajo qué categoría querrás los campos personalizados, y al seleccionar esa categoría te aparecerán los campos automáticamente.
  • CFS (Custom Fields Search): con este plugin podrás crear formularios de búsqueda a través de los campos personalizados creados con ACF.
  • Widget Logic: nos permitirá seleccionar en qué páginas queremos que aparezca nuestro widget, en este caso nuestro buscador creado con CFS por idioma.

El problema encontrado es que CFS crea una búsqueda pero sólo en la base de datos del idioma principal que configuraste en WPML. De esta forma, aunque hayas traducido los campos de búsqueda de ACF y CFS, igualmente, al hacer una búsqueda en otro idioma directamente te buscará sólo en la del primer idioma. Además la extensión «WPML Widget» sólo funciona con los predeterminados, por lo que si queremos hacer un buscador en dos idiomas, tendremos que usar Widget Logic para explicarle al sistema cuándo tiene que mostrarlo.

Es decir

He trabajado en una web que usa dos idiomas: español e inglés. El idioma principal es el español.

  • Cree los campos personalizados de: autor, publicado por, año y palabra clave.
  • Traduje estos campos con WPML al inglés para que pudiesen aparecer en ese idioma.
  • Con CFS cree los widgets (uno para cada idioma) que me permite buscar en los campos personalizados previamente creado.
  • Con Widget Logic le explico al widget que sólo aparezca cuando la web esté en el idioma correcto con el código: ICL_LANGUAGE_CODE == ‘es’ para español, y ICL_LANGUAGE_CODE == ‘en’ para inglés.

Búsqueda diferenciada por idiomas

Aquí está la parte que más dolor de cabeza te va a dar si te pones a buscar en foros. Al parecer no es una opción que esté disponible, o pensada de antemano.

Al hacer la búsqueda en el formulario en inglés, seguía yendo a buscar a «https://url.com/?Search…» cuando lo que necesitaba era «https://url.com#ff0000;">/en/?Search…».

Para ello, hay que ir a editar el plugin en las opciones de administración, y buscar el archivo:
wp-custom-fields-search/templates/wp-custom-fields-search-form.php

Una vez en él hay que reemplazar la línea:

  • <form method=’get’ class='<?php echo $formCssClass?>’ action='<?php echo $formAction?>’>

Por:

  • <?php
    if (ICL_LANGUAGE_CODE == ‘en’){ ?>
    <form method=’get’ class='<?php echo $formCssClass?>’ action='<?php echo $formAction?>/en/’>
    <?php } else ?>
    <form method=’get’ class='<?php echo $formCssClass?>’ action='<?php echo $formAction?>’>

Lo que le estaremos diciendo así al buscador es que cuando reconozca que el idioma es inglés entonces que le añada a la búsqueda /en/ al final.


Si, has llegado a esta entrada y aún no logras saber cómo poder hacerlo porque no quedó claro, escribe un comentario aquí abajo para poder intentar colaborarte. Yo no soy programador, de hecho tengo algunos conocimientos muy básicos, pero sí muy curioso como para lograr que finalmente las cosas funcionen como queremos.

Si, por otro lado, has llegado hasta este post y crees que existe una forma mejor de solucionar el problema, por favor, déjalo en comentarios para así poder aprender juntos.

Suscribirte
Notificación de
guest

0 Comments
Inline Feedbacks
View all comments

+ SIGUE NAVEGANDO

Comunicación en red y herramientas TIC en el #GCultural16

El sentido de un congreso es poder encontrar nuevas ideas, perspectivas y personas que nos motivan a continuar haciendo lo que ya hacíamos o a abrir nuevos caminos en el trabajo que venimos haciendo. Todo eso pero además, y más importante, lanzarnos a compartir lo que sabemos. Así, el Congreso de Gestión Cultural Online (del que Comunicación Abierta está participando), abre no sólo sus puertas sin…

Queremos Datos Abiertos

¡Sí! Queremos datos abiertos, muchos, libres, brutos y modificables. ¿Por qué? Bueno, la respuesta es bien sencilla: con ellos creamos y crearemos nuevas posibilidades políticas, sociales y culturales porque son la materia prima con la que podemos entender cómo funcionan las cosas. Pero obviamente, los retos son muy grandes para poder acceder a ellos. Tanto por parte de los estados para trabajar…

Hacia el primer Congreso online de Gestión Cultural

Si algún rato has entrado en mi blog, raro habrá sido que no te hayas dado cuenta las menciones constantes a un colectivo que es un tesoro, por eso está Al Final del ArcoIris: Ártica Online. Ahora llegan con la genial idea de armar un Congreso Online de Gestión Cultural, y más chulo todavía, invitar a que esta plataforma sea una de las que acoja una de las mesas temáticas: Comunicación en red y he…