U webu kuchyňské roboty používám vlastní custom post type. Zvlášť pro kuchyňský robot, zvlášť pro food processor a zvlášť pro mixér. I když je to rozděleno, u každého typu jsou desítky až stovky položek a další přibývají. Při vkládání se většinou články vkládají stylem klonování a obsah nového se drobně poupraví, proto je pro mě důležité řazení položek v administraci. Pokud si nastavím řazení kliknutím na hlavičku sloupce, wordpress si nastavení nepamatuje a při novém zobrazení tabulky zobrazuje původní zobrazení. V tomhle je lepší Joomla, která pracuje i s filtrem a vše si pamatuje. Škoda.

Před úpravou se články řadily podle data vzestupně, což působilo problémy. Proto jsem hledal, jak to změnit a tady je řešení. Stačí přidat kus kódu do functions.php a řazení se změní.

function order_by_date_roboty($wp_query) {
  if (is_admin()) {
    $post_type = $wp_query->query['post_type'];
    if ( $post_type == 'roboty') {
      $wp_query->set('orderby', 'date');
      $wp_query->set('order', 'DESC');
    }
  }
}
add_filter('pre_get_posts', 'order_by_date_roboty');

Na začátku se kontroluje, zda je funkce volaná z administrace webu. Následuje získání typu příspěvku z dotazu. Následně se podmínka ptá, zda se jedná o post type roboty. Vnitřek už jen řeší, který sloupec a jak se má řadit. A to je vše, jednoduché, funkční.

Řešení není mé. Originál je zde.

Líbil se vám článek? Sdílejte jej prosím: