
adruiz
Gamma
Verificación en dos pasos activada
Verificado por Whatsapp
EDIT: Solucionado 👍
Me explico, tengo un meta_query definido en todos los artículos, y desde el código me interesa recuperar de forma dinámica posts con un query específico (excepto el propio post). Para ejemplo, el siguiente código:
Funciona correctamente cuando el valor $coches coincide en otros posts y devuelve únicamente los posts que tengan ese valor. El problema viene cuando un post tiene un meta_value que todavía es único y que ninguno otro lo tiene, en ese caso me devuelve todos los posts que existen. He probado con un compare del meta_query siguiendo la documentación de Wordpress, pero no parece funcionar, además de muchas otras opciones similares que he ido viendo en stackoverflow. Algo como esto:
Siempre, sin excepción, $coches -> have_posts() me devuelve true y yo lo que quiero es que me devuelva true únicamente cuando hay más posts con el mismo meta_value.
Lo único que se me ocurre es jugar de alguna manera con el post__not_in, pero no se me ocurre cómo.
¿Alguna sugerencia? Os leo 🙂
Me explico, tengo un meta_query definido en todos los artículos, y desde el código me interesa recuperar de forma dinámica posts con un query específico (excepto el propio post). Para ejemplo, el siguiente código:
PHP:
$args = array(
'post_type' => 'post',
'post__not_in' => array($post_id),
'meta_query' => array(
array(
'key' => 'coches',
'value' => $coches
)
),
);
$coches = new WP_Query($args);
Funciona correctamente cuando el valor $coches coincide en otros posts y devuelve únicamente los posts que tengan ese valor. El problema viene cuando un post tiene un meta_value que todavía es único y que ninguno otro lo tiene, en ese caso me devuelve todos los posts que existen. He probado con un compare del meta_query siguiendo la documentación de Wordpress, pero no parece funcionar, además de muchas otras opciones similares que he ido viendo en stackoverflow. Algo como esto:
PHP:
$args = array(
'post_type' => 'post',
'post__not_in' => array($post_id),
'meta_query' => array(
'relation' => 'OR',
array(
'key' => 'coches',
'compare' => 'NOT EXISTS',
'value' => ''
),
array(
'key' => 'coches',
'value' => $coches
)
),
);
$coches = new WP_Query($args);
Siempre, sin excepción, $coches -> have_posts() me devuelve true y yo lo que quiero es que me devuelva true únicamente cuando hay más posts con el mismo meta_value.
Lo único que se me ocurre es jugar de alguna manera con el post__not_in, pero no se me ocurre cómo.
¿Alguna sugerencia? Os leo 🙂
Última edición: