Lepší řazení výsledků pomocí WP_Query ve WordPress 4.0

Tak jak se blíží datum vydání nové verze WordPressu 4.0, začínají se objevovat informace zajímavé pro vývojáře. Pokud vytváříte šablony pro WordPress, určitě jste se setkali s WP_Query. Pomocí této třídy, můžete vytvářet vlastní výpis obsahu a její možnosti jsou poměrně velké. Nyní k orderby.…

Obsah článku

Tak jak se blíží datum vydání nové verze WordPressu 4.0, začínají se objevovat informace zajímavé pro vývojáře. Pokud vytváříte šablony pro WordPress, určitě jste se setkali s WP_Query. Pomocí této třídy, můžete vytvářet vlastní výpis obsahu a její možnosti jsou poměrně velké.

Nyní k orderby.

Pokud jej v poli argumentů neuvedete, je základní řazení nastaveno dle data publikace a to sestupně. To znamená, že se řadí podle post_date z tabulky wp_posts.

Zároveň můžete pomocí order nastavit, zda se bude řadit sestupně, nebo vzestupně – DESC, nebo ASC.  V případě, že budete chtít výpis řadit podle jiného sloupce, orderby akceptuje řetězec s názvem sloupce. Můžete řadit podle post_title, nebo author, případně použít alias title.

Kód:

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

bude proveden jako

ORDER BY post_title DESC

Orderby umí navíc parsovat zadaný řetězec, takže, když zadáte názevy sloupců oddělené mezerami, budou použity takto:

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

bude provedeno jako

ORDER BY post_title, post_author DESC

Protože defaultní řaení v MySQL je ASC a řadí se podle sloupce, může tento kód vracet neočekávané výsledky, kdy post_title bude ASC a post_author DESC.

Změny ve WordPress 4.0

V nové verzi WordPressu je u argumentu orderby možnost zadat položky ne jako řetězec, ale v hodnotách pole, takže budete mít kontrolu nad tím, jak se budou výsledky řadit.

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

bude provedeno jako

ORDER BY post_title DESC, menu_order ASC

Přečteno a opsáno z WordPress.org

Jeden komentář: „Lepší řazení výsledků pomocí WP_Query ve WordPress 4.0“

  1. Vita avatar
    Vita

    Dobrý den,
    už mi chybí jen zjistit kde v kodu to nastavit.