WordPress WP_Query ‘orderby’ no funciona

2 minutos de lectura

avatar de usuario
Vicente Listrani

Mi consulta no es ordenar mis publicaciones usando el orderby parámetro.

Un poco de historia:

Estoy dentro de una instrucción foreach que recorre una taxonomía personalizada para los ID de “categoría”. mientras que en esa declaración foreach, intento invocar un nuevo WP_Query para obtener publicaciones de cada “categoría” de ese bucle foreach. Mi matriz de argumentos es la siguiente:

$args = array(
    'post_type' => 'wpsc-product',
    'post_status' => 'publish',
    'showposts' => -1,
    'tax_query' => array(
        array(
            'taxonomy' => 'wpsc_product_category',
            'field' => 'term_id',
            'terms' => $cat_id,
        ),
        array(
            'taxonomy' => 'series',
            'field' => 'slug',
            'terms' => $series_name
        )
    ),
    'orderby' => 'title',
    'order' => 'DESC'
);

$cat_id y $series_name son ambas matrices de mis taxonomías personalizadas en este post_type.

orderby y order no funcionan en absoluto y no puedo entender por qué.

avatar de usuario
vladimir

He comprobado tu código en mi blog de prueba. Y funciona como se esperaba. Así que los parámetros

'orderby' => 'title',
'order' => 'DESC'

ha configurado correctamente.

En esta situación, puede verificar la solicitud de SQL.

$query = new WP_Query($args);
var_dump($query->request);

  • también, aquí está el resultado: GROUP BY wp_posts.ID ORDER BY wp_posts.menu_order, wp_posts.post_date DESC

    – Vicente Listrani

    19 de noviembre de 2012 a las 19:49


  • si agregas remove_all_filters('posts_orderby'); antes de correr new WP_Query eso a veces solucionará los problemas de pedido.

    – David Yeiser

    11 mayo 2015 a las 13:40

  • Es una especie de restablecimiento completo, por lo que entiendo, algunos complementos afectarán el pedido sin darse cuenta.

    – David Yeiser

    29 de marzo de 2016 a las 16:52

  • @DavidYeiser Sí, tenía un complemento que sobrescribía mi parámetro orderby. var_dump($query->request); ayudó a exponer eso.

    – Tobe_Sta

    20 de abril de 2016 a las 9:16

  • @DavidYeiser Gracias 🙂

    – Jeque de Arsalan

    4 oct 2016 a las 8:00

¿Ha sido útil esta solución?

WordPress WP_Query ‘orderby’ no funciona

2 minutos de lectura

avatar de usuario
Vicente Listrani

Mi consulta no es ordenar mis publicaciones usando el orderby parámetro.

Un poco de historia:

Estoy dentro de una instrucción foreach que recorre una taxonomía personalizada para los ID de “categoría”. mientras que en esa declaración foreach, intento invocar un nuevo WP_Query para obtener publicaciones de cada “categoría” de ese bucle foreach. Mi matriz de argumentos es la siguiente:

$args = array(
    'post_type' => 'wpsc-product',
    'post_status' => 'publish',
    'showposts' => -1,
    'tax_query' => array(
        array(
            'taxonomy' => 'wpsc_product_category',
            'field' => 'term_id',
            'terms' => $cat_id,
        ),
        array(
            'taxonomy' => 'series',
            'field' => 'slug',
            'terms' => $series_name
        )
    ),
    'orderby' => 'title',
    'order' => 'DESC'
);

$cat_id y $series_name son ambas matrices de mis taxonomías personalizadas en este post_type.

orderby y order no funcionan en absoluto y no puedo entender por qué.

avatar de usuario
vladimir

He comprobado tu código en mi blog de prueba. Y funciona como se esperaba. Así que los parámetros

'orderby' => 'title',
'order' => 'DESC'

ha configurado correctamente.

En esta situación, puede verificar la solicitud de SQL.

$query = new WP_Query($args);
var_dump($query->request);

  • también, aquí está el resultado: GROUP BY wp_posts.ID ORDER BY wp_posts.menu_order, wp_posts.post_date DESC

    – Vicente Listrani

    19 de noviembre de 2012 a las 19:49


  • si agregas remove_all_filters('posts_orderby'); antes de correr new WP_Query eso a veces solucionará los problemas de pedido.

    – David Yeiser

    11 mayo 2015 a las 13:40

  • Es una especie de restablecimiento completo, por lo que entiendo, algunos complementos afectarán el pedido sin darse cuenta.

    – David Yeiser

    29 de marzo de 2016 a las 16:52

  • @DavidYeiser Sí, tenía un complemento que sobrescribía mi parámetro orderby. var_dump($query->request); ayudó a exponer eso.

    – Tobe_Sta

    20 de abril de 2016 a las 9:16

  • @DavidYeiser Gracias 🙂

    – Jeque de Arsalan

    4 oct 2016 a las 8:00

¿Ha sido útil esta solución?