Jak přidat vlastní pole ve výpisu článků v administraci

Protože se pod posledním článkem objevila diskuze a dotaz, jak vložit sloupec s informacemi do výpisu článků v administraci, ukážeme si dnes, jak je to jednoduché. Nejprve však musím zareagovat na jednoho z diskutujících.

Ano pluginy na to jsou a všechno si naklikáte. Jenže když budete všechno klikat pomocí pluginů, tak se naučíte právě jen to – klikat.

Navíc pluginy sebou přinášejí spoustu kódu navíc, který obsahuje různá nastavení, jenž třeba ani nevyužijete. A pokud potřebujete rychlé a jednoduché řešení, jsou dvě funkce vložené do functions.php, to pravé.

Nyní k návodu. Postup si ukážeme na náhledovém obrázku, který vložíme na začátek řádku tabulky.

Použijeme tuto funkci

add_filter('manage_posts_columns', 'musilda_thumb_column');
function musilda_thumb_column($columns) {
    $new_columns = array();
    foreach($columns as $key => $item){
      $new_columns[$key] = $item;
      if($key == 'cb'){
         $new_columns['thumb'] = __('Náhled','domain');
      }
    }
 
    return $new_columns;
}

Funkce je jednoduchá, ale musím vysvětlit, proč se prochází celým polem a znovu se generuje. Když totiž pole „nepřerovnáte“, tak se $columns[‚thumb‘] = __(‚Náhled‘,’domain‘); vloží na konec a náhledový obrázek bude na konci řádku. Proto jej umístíme hned za checkbox, který má id „cb“.
Druhá funkce je

add_filter('manage_posts_custom_column', 'manage_musilda_thumb_column', 10, 2);
function manage_musilda_thumb_column($column_name, $post_id) {
    global $post;
    if( $column_name == 'thumb' ) {
        echo the_post_thumbnail(array(100,100));
    }
}

Ta jen zajistí výpis toho co potřebujeme. Pokud tam budeme chtít mít custom field, ve funkci místo the_post_thumbnail bude nějaké get_post_meta. Záleží jen na vás.

A to je vše.
Stav před
screenshot-tvujden.cz 2014-10-27 19-41-18

Výsledek
screenshot-tvujden.cz 2014-10-27 19-47-24

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

3 Comments

  1. Radek P.

    Stěmi pluginy a učením se klikat plně souhlasím. Systém zahlcený pluginy, u kterých člověk pomalu neví, co všechno dělají a jak jsou bezpečné, to je grrrr, navíc to prodlužuje zbytečně načítání webu.
    Na druhou stranu je potřeba si uvědomit, že web je živé médium a čas od času dojde na potřebu změnit design. V tu chvíli, vše co je ve functions, je v trapu a je potřeba na to myslet.
    Proto není od věci, pokud víte, že grafiku sem tam na wordrpessu obměníte, takový postup strčit právě do svého pluginu. Není to o nic těžší, přibudet jen pár řádků kódu navíc, a v budoucnu nebude žádný problém přejít na jiný design

    Odpověď
  2. Marek Klusák

    Že já ten plugin vůbec zmiňoval, a ještě použil to zprofanované „naklikání“ :-D Tazatel nenapsal, že chce programátorský způsob, tak jsem mu odpověděl, jak nejrychleji jeho problém řešit. U onoho pluginu mám také rád, že si může člověk táhlem nastavit i šířku sloupečků, což mě také naštve – přidám sloupec s ID, a WP ho automaticky roztáhne na 20% šířky stránky, ař mu stačí 5% … a to už je další kód do functions.php nastavující CSS direktivy pro daný sloupec, atd…

    Samozřejmě jsem také zastánce minima pluginů a „lehkého“ webu, na druhou stranu také nerad do functions.php cpu desítky všemožných kódů starajících se o všechno možné – působí to na mě dojmem „bordelu“. Ale od toho functions.php asi je :)

    Vlastní plugin by tohle také řešil, ostatně sem tam dělám něco podobného – všechny tyto úpravy si dávám do svého souboru functions-custom.php, a do functions.php jen doplním „include“ rádek. Pak není problém si tenhle soubor snadno přenést do jiného vzhledu a hned mít své oblíbené funkce po ruce.

    Odpověď

Přidejte komentář

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