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