query_posts y mostrar solo resultados si un campo personalizado no está vacío

24 feb 2011, 11:31:40
Vistas: 20.3K
Votos: 3

¿Cómo puedo usar query_posts y mostrar solo resultados si un campo personalizado no está vacío o tiene un valor?

Quiero poner una URL en un campo personalizado y mostrar solo estas páginas si existe una URL.

Código actual pero no puedo resolver el resto:

$args = array( 'posts_per_page' => '10', 
    'post_type' => 'programmes', 
    'orderby' => 'meta_value_num', 'meta_key' => 'popularityfig',
    'order'  => 'DESC',
    );
0
Todas las respuestas a la pregunta 3
3

Prueba este código:

$args = array(
'posts_per_page' => '10',
'post_type' => 'programmes',
'meta_key' => 'popularityfig',
'meta_value' => '',
'meta_compare' => '!=',
'order' => 'DESC'
);

Hay 2 argumentos que quizás quieras notar en el código: meta_value y meta_compare. Usar meta_compare con el operador != excluirá las publicaciones con valor meta vacío.

24 feb 2011 11:53:51
Comentarios

Gracias, ahora puedo verlo en el codex. No estoy seguro de por qué no podía verlo antes. ¡Gracias de nuevo!

erichmond erichmond
24 feb 2011 12:08:56

Por alguna razón, esto seguía mostrando todos mis posts sin importar el valor. En cambio, usé 'meta_value' => array('') y 'meta_compare' => 'NOT IN' y eso funcionó. Creé mi meta valor con el plugin Advanced Custom Fields (ACF) y era solo un campo de texto.

AuRise AuRise
10 ene 2018 15:33:45

@Tessa Esto funcionó para mí. ¡Gracias!

sk03 sk03
25 oct 2021 22:35:14
0

No está claro si la respuesta anterior realmente funcionó para ti @erichmond, pero definitivamente no funcionó para mí. Sin embargo, encontré una solución. Mira: Cómo mostrar publicaciones solo si meta_value no está vacío

2 mar 2011 21:50:40
0

La respuesta aceptada no funcionó para mí con un campo de texto en Advanced Custom Fields. Seguía recuperando todas las publicaciones una vez que se guardaban después de agregar el campo de texto a los Campos Personalizados. Tuve que implementar una solución similar a otros:

$args = array(  
    'meta_key' => 'your_acf_field', // Reemplaza con tu campo ACF
    'meta_value' => array(''),
    'meta_compare' => 'NOT IN', // Excluye registros donde el campo está vacío
);
13 may 2022 17:09:25