Você sabe, a partir do WP3.0, existem opções para consultas avançadas personalizadas, o que é ótimo. Assim, alguns parâmetros de consulta de campos personalizados como meta_key, meta_value foram descontinuados para o novo parâmetro meta_query ( veja aqui )
Eu tento ter uma consulta bastante simples com a nova sintaxe, postagens de consulta de um determinado post_type (services) que contém uma meta_key especificada (order_in_archive) - isso está indo bem como esperado. Mas - quero ordenar pela consulta pelo meta_value, e sem sucesso.
Esta é a minha consulta -
query_posts(
array( 'post_type' => 'services',
'order' => 'ASC',
'orderby' => 'meta_value',
'meta_query' => array(
array('key' => 'order_in_archive'))
)
);
Tentei fazer o pedido também por meta_value_numeric e meta_value, mas, em qualquer caso, os resultados estão sendo ordenados pela data de publicação (como fazem as postagens regulares). Alguém sabe como isso pode ser feito?
obrigado
fonte
O WP Codex é realmente confuso ao solucionar esse problema.
Na verdade, você não precisa do parâmetro meta_query para usar o orderby, em vez disso, usa o parâmetro meta_key, que embora tenha sido preterido pelo WP Codex, foi estabelecido aqui: Como você usa o orderby com meta_query no Wordpress 3.1? esse ordenado ainda precisa da meta_key.
então deveria ser
fonte
É fácil:
Aqui está o meu código:
O detalhe principal é: include
meta_key
, meu código não solicitou, a menos quemeta_key
esteja incluído, e isso é tudo:Aqui está o código completo de uma lista de
directors
imagens, ordenadas pordirector_weight
:fonte
Não use query_posts.
Use os parâmetros WP_Meta_Query
fonte
Eu achei que isso funcionava muito bem.
fonte
meta_query
parâmetro e obter umaorderby
para trabalhar com ele, e não sobre os mais velhos, mas ainda funcionaismeta_key
/meta_value
parâmetros. Além disso, não vamos incentivar o uso dequery_posts
.Eu tinha um conjunto de datas de eventos personalizados que precisava ordenar por data decrescente. Como a data do meu evento personalizado foi armazenada na minha tabela wp_postmeta e era tipicamente diferente das datas post_date ou modificadas, isso funcionou para mim:
Você pode percorrer $ posts da seguinte maneira:
fonte
Este trabalho para mim,
Necessário apenas para fornecer a chave para a order_clause
fonte