Zobrazení náhledového obrázku, id článku a post meta ve výpisu článků v administraci

Poněkud krkolomný titulek uvádí článek, v kterém se budu věnovat úpravě výpisu článku v administraci. Dá se říci, že navazuje na předminulý článek, kdy jsme do výpisu přidali zobrazení statusů článku.

Protože se dost často setkávám s tím, že při větším množství článků, je poměrně zdlouhavé a nepříjemné otevřít každý článek a zjišťovat post id, nebo jiná data. Ukážeme si tedy, jak přidat do výpisu článků id postu, náhledový obrázek a post meta.

U post meta se zastavím. Já sem zde zvolil post meta s názvem template, protože si dovedu představit, že hledám jen články se sidebarem vlevo. Ale vy můžete použít pro výpis jakoukoliv hodnotu a můžete si tak například načítat počet obsazených reklamních pozic v článcích.

Nyní už samotný kód.

Nejprve vytvoříme funkci, pomocí které přidáme columns do výpisu tabulky:

add_filter('manage_posts_columns', 'posts_columns', 5);
 
function posts_columns($defaults){
  $defaults['musilda_post_id']       = 'ID';
  $defaults['musilda_post_thumbs']   = 'Náhled';
  $defaults['musilda_post_template'] = 'Šablona';
  return $defaults;
}

Pomocí manage_posts_columns jsme funkci přiřadili pro výpis článků. Pokud budeme chtít udělat obdobnou úpravu pro stránky, přidáme funkci do filtru manage_pages_columns.
Nyní vytvoříme funkci pro zobrazení hodnot jednotlivých buněk:

add_action('manage_posts_custom_column', 'posts_custom_columns', 5, 2);
 
function posts_custom_columns($column_name, $id){
  if($column_name === 'musilda_post_id'){
    echo $id;
  }   
  if($column_name === 'musilda_post_thumbs'){
    echo the_post_thumbnail(array(50,50));
  }
  if($column_name === 'musilda_post_template'){
    echo get_post_meta($id,'template',true);
  }    
}

Díky těmto dvou jednoduchým funkcím se nám výpis zobrazuje takto:
Příspěvky ‹ Child themes – WordPress

Paráda – nebo ne?

Bohužel to bude chtít ještě jednu úpravu. Funkce automaticky přiřadí hodnoty na konec pole. Osobně preferuji mít id článku hned za checkboxem pro hromadné úpravy a za ním náhledový obrázek. U post meta to je asi jedno. Takže funkci musíme upravit:

add_filter('manage_posts_columns', 'posts_columns', 5);
 
function posts_columns($defaults){
  $new_columns = array();
  $new_columns['cb']                    = '<input type="checkbox" />';
  $new_columns['musilda_post_id']       = 'ID';
  $new_columns['musilda_post_thumbs']   = 'Náhled';
  $new_columns['title']                 = 'Title';
  $new_columns['categories']            = 'Categories';
  $new_columns['tags']                  = 'Tags';
  $new_columns['date']                  = 'Date';
  $new_columns['musilda_post_template'] = 'Šablona';
 
  return $new_columns;
 
}

Úplným závěrem trochu stylů:

add_action('admin_head','musilda_columns_style');
function musilda_columns_style(){
  echo '
    <style>
      #musilda_post_id,
      #musilda_post_thumbs{
        width:50px;
      }
    </style>
  ';
}

Pokud si děláte podobné úpravy častěji, vytvořte si css soubor pro administraci, ať necpete kód zbytečně do hlavičky.

Příspěvky ‹ Child themes – WordPress (1)

About The Author

Zajímá mne Wordpress, responsivní šablony a zkrátka vše kolem tohoto skvělého redakčního systému.

Související články

Přidejte komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *