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

  • WordPress 6.9 introduz suporte a notas colaborativas na edição de conteúdo
    |

    WordPress 6.9 introduz suporte a notas colaborativas na edição de conteúdo

    O WordPress 6.9 está chegando e tem lançamento oficial previsto para o dia 2 de dezembro de 2025. Com ele, virá uma das funcionalidades mais aguardadas por equipes, agências e freelancers: as Notas (Notes) a nível de blocos. Anteriormente conhecidas como “Comentários em Bloco” (Block Comments), esta nova ferramenta promete transformar o fluxo de trabalho…

  • Adobe migrará 12.000 blogs do Movable Type para o WordPress !

    Pavel Ushakov, responsável pela empresa BlogConsulting, revelou a semanas atrás que em um de seus mais recentes trabalhos a Blog Consulting auxiliará a Adobe a migrar 12.000 desenvolvidos com Movable Type para o WordPress. O anúncio aconteceu poucos dias após vir a público que LA Times e Windows Live Spaces migrarão suas plataformas de blogs…

  • Finalmente lançado o WordPress 2.7 !

    Lançada a versão final do WordPress 2.7, codinome Coltrane. A plataforma de blogs WordPress ganhou nesta quinta-feira (11/12) sua versão 2.7, com mudanças principalmente em interface e gerenciamento multimídia. Em vídeo publicado no blog oficial do WordPress, o fundador do serviço Matt Mullenweg indica que as principais novidades têm relação com a customização de ferramentas…

  • Acordo entre Automattic e Federated Media Publishing permitirá anúncios no WordPress.com

    Em um acordo anunciado no Web 2.0 Summit, em outubro, Automattic e Federated Media Publishing fizeram um acordo para dar direitos de publicidade para usuários do WordPress.com nos Estados Unidos. Nenhum detalhe específico sobre o share da receita gerada ou os tipos de anúncios que serão permitidos foram divulgados ainda. Este é um grande passo…

  • WordPress 3.4.1: Release de Manutenção e Segurança

    WordPress 3.4.1 está disponível para download. O WordPress 3.4 foi um lançamento muito bom, e as cópias estão voando das prateleiras – 3 milhões de downloads em duas semanas! Esta versão de manutenção aborda 18 bugs com a versão 3.4, incluindo: Correção de um problema onde os modelos de um tema de página algumas vezes…

  • Atualização: WordPress 2.9.1

    Depois de milhões de downloads do WordPress 2.9 e muitos feedbacks de todos, está sendo lançado o WordPress 2.9.1. Esta versão engloba muitos bugs menores e também um probleminha chato quando era usado o recurso de agendamento de postagens, além dos pingbacks não estarem sendo processados corretamente por incompatibilidade com alguns hosts. Se qualquer destes…

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