Si en un proyecto WordPress con Elementor tenemos que hacer Querys avanzadas con «Listings» de diseño personalizado. JetEngine es una gran opción, es de pago pero merece la pena.
Todo sin escribir código; sabemos que no es lo ideal siempre, pero este método nos puede salvar algún proyecto que otro.
A saber, tenemos la siguiente situación:
- Custom Post Type «Eventos»
- Dentro de ese CPT Custom Field «Fecha» (en nuestro caso ID: «fecha_fin») creado con MetaBox.
- Además como custom taxonomy «Tipo de evento» de los que sólo nos interesan los que tienen por slug «transmision-conocimiento».
Objetivo: Obtener una lista de próximos eventos del tipo de evento indicado arriba y además que estén ordenados por su fecha de finalización.
Pasos
Paso 1: Listing de eventos
Muy básico pero seleccionamos en el widget de Elementor Listing Grid, el listing que hayamos creador en el editor de JetEngine.
Paso 2: próximos eventos con meta_query
En la pestaña del widget anterior llamada «Posts Query» añadimos el tipo meta_query, con el key (ID de nuestro custom field) seteado. Importante dejar la comparación como CHAR para que reconozca el formato fecha que nosotros configuramos con el plugin MetaBox para crear el campo.
Paso 3: sólo la taxonomía que nos interesa
Añadimos otro item en «Posts Query», en este caso un «Tax Query». Seleccionando un operador adecuado y el slug del term por el que queremos filtrar.
Paso 4: ordenar por custom field fecha
Para obtener los posts ordenados como queremos, los más cercanos en el tiempo primero, añadimos para terminar en «Posts Query» un tipo «Order & Offset», especificando siempre el meta key de nuestro custom field.
Para que nos reconozca el formato de MetaBox de nuevo importante seleccionar el Meta type CHAR.
Resultado final
Con estas opciones ya tenemos ordenados los post como queremos y sacando sólo en la query eventos futuros de la taxonomía en concreto que queremos.