Excluyendo valores meta_key vacíos en los resultados de WP_Query

1 minuto de lectura

Estoy usando WP_Query para sacar algunas publicaciones personalizadas como esta:

$params = array(            
        'post_type' => 'portfolio',
        'post_status' => 'publish',
        'posts_per_page' => 10,
        'meta_key' => 'slideorder',
        'orderby' => 'meta_value',
        'order' => 'ASC'
        'ignore_sticky_posts' => 1,
    );
$slport_query = new WP_Query($params);

El problema al que me enfrento es que incluso si el ‘orden de diapositivas’ (cadena) está vacío, se incluye en el resultado. ¿Cómo recuperaría solo publicaciones donde ‘meta_value’ tiene al menos un carácter?

He intentado agregar:

'meta_value' => '',
'meta_compare' => '!=',

pero eso no ayuda. ¿Algunas ideas?

gracias ben

Vale… Aquí está la solución. Parece que incluso los meta_valores aparentemente vacíos tienen o devuelven un solo espacio. Así que esto funciona:

$params = array(
    'post_type' => 'portfolio',
    'post_status' => 'publish',
    'posts_per_page' => 10,
    'meta_key' => 'slideorder',
    'meta_value' => ' ',
    'meta_compare' => '!=',
    'ignore_sticky_posts' => 1,
    'orderby' => 'meta_value',
    'order' => 'ASC'
);
$slport_query = new WP_Query($params);

  • Acabo de buscar la respuesta a este problema 6 años después y encontré la respuesta aquí… 😂🔫

    – Mero Desarrollo

    12 de junio de 2018 a las 16:31

¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad