Alterar a ordem dos custom posts no WordPress

O facto do WordPress não ter nascido como CMS ainda se nota com alguma regularidade. Um exemplo disso é quando queremos mostrar, com uma ordem definida por nós, um série de elementos pertencentes a um custom post type, que por sua vez pertencem a uma custom taxonomy  (num URL do tipo  /<taxonomy-name>/<taxonomy-term>). Por defeito são mostrados por ordem de criação.

Isto implica criar uma nova instância do WP_Query com todos os argumentos necessários para obter o que pretendemos.

Criar o array com os argumentos tem que se lhe diga. Principalmente porque é preciso saber quais são, quais precisamos, quais podemos ignorar, etc. A forma mais simples de criar esse array é aproveitar o trabalho que o WordPress já fez.

Basta aceder ao array da query original e juntar-lhe apenas os argumentos que queremos alterados. Neste exemplo, o orderby e o order. Fazemos isso com a função do PHP array_merge , que concatena uma série de arrays usando sempre os valores do último array em caso de conflito (exactamente o que pretendemos).

Simples e eficaz.

Dica relacionada: Alternativamente a definir a ordem na página de edição de cada post é melhor usar um plugin como o Simple Page Ordering.

Zé Cipriano
<p>Web developer independente (PHP, Laravel).</p>

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *