Um mais poderoso ORDER BY no WordPress 4.0

orderby é o argumento passado para a WP_Query para dizer por qual coluna deve ser a ordenação quando ele está criando a cláusula ORDER BY para o seu SQL gerado. O valor padrão para orderby é post_date.
A ordem de classificação padrão para uma coluna em MySQL é ASC (ascendente), com os valores menores em primeiro lugar. Para o inverso, DESC é usado. Você pode ordenar por múltiplas colunas e cada coluna pode ter sua própria ordem de classificação.

O valor padrão para o argumento de ordem dentro WP_Query é DESC. ~ 23% da internet consulta automaticamente as mensagens em ordem cronológica inversa por causa disso. Ordem só pode ser um dos dois valores: DESC ou ASC.

O orderby aceita uma string, o que representa uma coluna na qual classificar:

$q = new WP_Query( array( 'orderby' => 'post_title' ) );
 
// or an alias
$q = new WP_Query( array( 'orderby' => 'title' ) );

Ambos irão produzir uma cláusula ORDER BY assim:

ORDER BY post_title DESC

O orderby também irá analisar um conjunto delimitado por espaço de colunas:

$q = new WP_Query( array( 'orderby' => 'title author' ) );

Antes de 4.0, havia um problema: o valor de ordem só seria aplicado para o último valor que você passou nessa lista delimitada por espaço, produzindo uma cláusula ORDER BY como:

ORDER BY post_title, post_author DESC

Lembre-se que a ordem de classificação padrão para uma coluna em MySQL é ASC, então consultas assim podem ficar estranhas e produzir resultados inesperados/imprevisíveis. Se nenhum valor é passado para a ordem para uma coluna no SQL gerado, a coluna será classificada em ordem ASC. Isso não era tão claro para todos os desenvolvedores. (veja no trac #26042)

No WordPress 4.0, quando você passar um conjunto delimitado por espaço de valores, seu valor único para a ordenação será aplicada a todos os seus valores que são analisados ​​para orderby. Isso foi corrigido no trac #28541.

Então, isso é muito bom, mas ele não permite que você tenha controle sobre a ordem de classificação para cada coluna. A sintaxe não se deixa muito espaço para a extensão. Ai vejo o item #29027 no trac.

Depois deste conjunto de melhorias, no WordPress 4.0 agora você pode passar um array para WP_Query como o valor para orderby. A sintaxe agora é assim:

$q = new WP_Query( array( 'orderby' => array( 'title' => 'DESC', 'menu_order' => 'ASC' ) ) );

E isto lhe permite controlar a geração da cláusula ORDER BY com mais especificidade:

ORDER BY post_title DESC, menu_order ASC

Antes do WordPress 4.0, você teria que usar alguns filtros na instrução SQL ou uma cláusula específica. O que não era muito bom.

Para ver as partes internas, confira os novos métodos protegidos no WP_Query: ->parse_order() e ->parse_orderby.

Posts Similares

  • Fase 4 do projeto Gutenberg — O futuro multilíngue do WordPress
    |

    Fase 4 do projeto Gutenberg — O futuro multilíngue do WordPress

    Após a transformação da edição de conteúdo (Fase 1), da customização de site (Fase 2) e da colaboração em equipe (Fase 3), a última fase do Projeto Gutenberg visa resolver uma das barreiras mais antigas e complexas da plataforma: o suporte a sites multilíngues. A Fase 4 foca na implementação de suporte nativo e centralizado…

  • WordPress 3.4 Beta 3

    Em paralelo a notícia da nova versão do WordPress 3.3.2, a equipe de desenvolvimento não para de melhorar o WordPress 3.4. Saiu também a nova versão Beta 3 do WordPress 3.3.4 para todos aqueles que gostam de mergulhar nos testes. Em relação ao Beta 2, 90 alterações foram feitas e a equipe WordPress tem se…

  • Los Angeles Times se rende ao WordPress

    Mais um grande se rende ao WordPress ! O Los Angeles Times agora faz parte do WordPress.com VIP, um programa especial para os usuários corporativos rodando implantações em grande escala do WordPress. O LA Times lançou recentemente dois novos (e belos) blogs usando o serviço: Framework, que destaca o trabalho de fotojornalismo, e Hero Complex,…

  • Finalmente: WordPress 3.1!

    Postado no blog do WordPress na manhã do dia 22 de fevereiro de 2011 por Matt Mullenweg: O WordPress 3.1 está finalmente lançado ! Finalmente, a nova versão está ai para nossa alegria e acabar com a espera que já durava desde 14 de dezembro de 2010 !

  • WordPress 3.0.2 – Importante atualização de segurança !

    O WordPress 3.0.2 foi lançado e aparece como uma atualização mais do que recomendada, pois provê mais segurança para seu site WordPress. Tal atualização vem para corrigir alguns problemas de segurança onde um usuário malicioso de nível ‘Autor’ pode conseguir maiores acessos de edição de seu site.

  • Atualização: WordPress 2.6.5 lançado

    A equipe do WordPress acaba de disponibilizar o WordPress 2.6.5. A atualização corrige 3 bugs e 1 problema de segurança, e é recomendável para todos que usam o WordPress. A versão 2.6.4 foi pulada para evitar confusão com um fake que saiu há pouco tempo atrás.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

1 Comentário