Pregunta sobre WordPress Infinite Scroll - Ajax Load More de Wordpress:

Comparación de fechas de ACF

Un usuario preguntó 👇

Hola,

Lucho mucho con el parámetro meta_compare. Tengo trabajos con el campo Fecha de ACF [event_starts] y trato de filtrar eventos entre dos fechas (mostrar el evento por meses).

Filtrado por «más» o «menos» con una fecha, pero con dos fechas muestra todos o ningún valor.

Intento mostrar todas las publicaciones con ACF Date [event_starts] entre octubre:


$start_date = '20191001'; // October 1, 2019
$end_date = '20191031'; // October 31, 2019 

echo do_shortcode('[ajax_load_more 
	post-type="post" 
	meta_key="event_starts:event_starts" 
	meta_value="'. $start_date .':'. $end_date .'" 
	meta_compare=">:lessthan"
	meta_operator="DATE:DATE" 
	meta_relation="AND"
]');

Solo obtengo fechas que son 2019-10-31 (pero tengo fechas entre fechas de inicio / finalización), si uso meta_relation = ”O” obtengo todas las fechas.

Creo que hay un problema con el formato de fecha ACF en la base de datos y el valor de $ start_date. ACF almacena valores en la base de datos sin guiones (20191001).

¿Quizás alguien pueda ayudarme?

(@dcooney)

Hace 1 año, 4 meses

hola @deiwee Parece que hay un error en el corazón de ALM con lessthan mientras usa varios objetos meta_query.

He solucionado este problema localmente y se incluirá en el próximo número. Probablemente dentro de una semana.

Si necesita una solución anterior, hágamelo saber y puedo corregir el código.

Lanzador de hilos

(@deiwee)

Hace 1 año, 4 meses

¡Aunque soporte rápido! 🙂

Por el momento he logrado «arreglar» esto:


$start_date = '20191001'; // October 1, 2019
$end_date = '20191031'; // October 31, 2019
echo do_shortcode('[ajax_load_more 
post-type="post" 
meta_key="event_starts" 
meta_value="'. $start_date .','. $end_date .'" 
meta_compare="BETWEEN"
meta_operator="DATE"
]');

No sé por qué muchos objetos meta_value solo funcionan con una coma (los ejemplos eran dos puntos). Gracias de nuevo, esperaré una actualización.

Sobre.

(@dcooney)

Hace 1 año, 4 meses

@deiwee Sí, probablemente sea una mejor manera de todos modos.

Lanzador de hilos

(@deiwee)

Hace 1 año, 4 meses

Este puede ser el mismo error, pero encuentro un extraño problema de clasificación.

Tengo trabajos con ACF [price], los precios oscilan entre 200 y 1048. Cuando utilizo un vínculo para filtrar valores, siempre obtengo valores> 1000.

Ejemplo:


<a href="#" 
 data-repeater="default"
 data-post-type="post"
 data-category="" 		 
 data-posts-per-page="8" 
 data-category--not-in="10"
 data-meta-key="price"
 data-meta-value="240"		 
 data-meta-compare="lessthan"
 data-meta-operator="NUMERIC"
 data-order="ASC"
 data-orderby="meta_value_num"		 
>Price is less than 240
</a>

Recibo publicaciones con 220, 224, 1001, 1048. Si cambio el rango de precios de las publicaciones de 1048 a 999, no aparecen en un filtro. Incluso si lo hago entre 1 y 200, todavía obtengo valores superiores a mil. Los valores de la base de datos están limpios, sin caracteres. Pero si trato de obtener valores en código corto, funciona:


echo do_shortcode('[ajax_load_more post_type="post" meta_key="price" meta_value="240" meta_compare="lessthan" meta_type="NUMERIC" order="ASC" orderby="meta_value_num" posts_per_page="4" button_label="More Events"]');

¿Que me estoy perdiendo aqui? 🙁

(@dcooney)

Hace 1 año, 4 meses

@deiwee Probé este atajo con WooCommerce _price campo personalizado y obras. Creo que podría ser un problema con la forma en que se almacenan sus dominios.

Lanzador de hilos

(@deiwee)

Hace 1 año, 4 meses

Hola, @dcooney, ¡gracias!

Después de ti:


add_filter('alm_debug', '__return_true');

Se encontró que el tipo de meta_query era CHAR. Hubo un error en mi enlace ahref aquí:


data-meta-operator="NUMERIC" // Should be data-meta-type *facepalm*

Este error de trolling de este ejemplo Fecha de comparación
Creo:
meta_operator="DATE:DATE"
Debería ser
meta_type="DATE"

Gracias de nuevo 🙂

¿Solucionó tu problema??

0 / 0

Deja una respuesta 0

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