Aa ya sabes, a partir de WP3.0 hay opciones para consultas avanzadas personalizadas, lo cual es genial. A partir de esto, algunos parámetros de consulta de campos personalizados como meta_key, meta_value quedaron en desuso para el nuevo parámetro meta_query ( ver aquí )
Intento tener una consulta bastante simple con la nueva sintaxis, consultar publicaciones de cierto post_type (servicios) que contiene una meta_key específica (order_in_archive), esto está yendo bien como se esperaba. Pero, quiero ordenar por la consulta por el meta_valor, y sin éxito.
Esta es mi consulta
query_posts(
array( 'post_type' => 'services',
'order' => 'ASC',
'orderby' => 'meta_value',
'meta_query' => array(
array('key' => 'order_in_archive'))
)
);
Intenté ordenar por meta_value_numeric y meta_value, pero en cualquier caso los resultados están ordenados por la fecha de publicación (como lo hacen las publicaciones regulares). Alguien sabe cómo se puede hacer esto?
Gracias
fuente
El WP Codex es realmente confuso al abordar este problema.
En realidad, no necesita el parámetro meta_query para usar orderby, sino que utiliza el parámetro meta_key, que aunque WP Codex está en desuso, se ha establecido aquí: ¿Cómo se usa orderby con meta_query en Wordpress 3.1? ese orden todavía necesita la meta_key.
entonces debería ser
fuente
Es fácil:
Aquí está mi código:
El detalle principal es: incluir
meta_key
, mi código no ordenó a menos quemeta_key
esté incluido, y eso es todo:Aquí está el código completo de una lista de
directors
imágenes ordenadas pordirector_weight
:fuente
No use query_posts.
Use los parámetros WP_Meta_Query
fuente
Encontré que esto funciona bastante bien.
fuente
meta_query
parámetro new-ish y conseguirorderby
que funcione con él, y no sobre los parámetrosmeta_key
/meta_value
parámetros más antiguos pero funcionales . Además, no fomentemos el uso dequery_posts
.Tenía un conjunto de fechas de eventos personalizados que necesitaba ordenar por fecha descendente. Dado que la fecha de mi evento personalizado se almacenó en mi tabla wp_postmeta, y normalmente era diferente a la fecha post_date o modificada, esto funcionó para mí:
Luego puede recorrer $ posts de esta manera:
fuente
Este trabajo para mi
Solo se necesita para proporcionar la clave para la orden_clause
fuente