Pokud chcete nějakému vlastnímu, či klidně systémovému post typu přidat v administraci sloupce, tak je k tomu ve frameworku připravena třída KT_Admin_Columns. Definici administračních sloupců je nejvhodnější navázat do definičního souboru post typu, či si klidně za tímto účelem založit vlastní podadresář, např. „admin_columns„, uvnitř adresáře requires ve vašem projektu, resp. modulu (= kt/yours).
Řekněme tedy, že už máme založený vlastní post type Car a chceme přidat do administračního přehledu fotku (thumbnail postu), pak stačí pouze doplnit (nejlépe přidat na konec za definice) soubor (kt/yours/requires/definitions)kt_xxx_car_definition.inc.php:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
... if ( is_admin() ) { // vlastní sloupce v administraci $carAdminColumns = new KT_Admin_Columns( KT_XXX_CAR_KEY ); $carAdminColumns ->addColumn( "post_thumbnail", array( KT_Admin_Columns::LABEL_PARAM_KEY => __( "Foto", KT_DOMAIN ), KT_Admin_Columns::TYPE_PARAM_KEY => KT_Admin_Columns::THUMBNAIL_TYPE_KEY, KT_Admin_Columns::INDEX_PARAM_KEY => 0, ) ); } |
Nebo třeba můžeme přidat jenom uživatele, resp. autora příspěvku, navíc včetně vlastní filtrovací funkce, která musí být také definována a to buď někde obecně, řekněme např. v kt_theme_setup.inc.php anebo v případě specifického využití ideálně hned za definicí sloupců:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
... if ( is_admin() ) { // vlastní sloupce v administraci $carAdminColumns = new KT_Admin_Columns( KT_XXX_CAR_KEY ); $carAdminColumns ->addColumn( KT_XXX_Car_Config::LEADER, array( KT_Admin_Columns::LABEL_PARAM_KEY => __( "Vedoucí", KT_DOMAIN ), KT_Admin_Columns::TYPE_PARAM_KEY => KT_Admin_Columns::POST_PROPERTY_TYPE_KEY, KT_Admin_Columns::PROPERTY_PARAM_KEY => "post_author", KT_Admin_Columns::FILTER_FUNCTION => "kt_xxx_post_author_admin_column_filter", KT_Admin_Columns::ORDERBY_PARAM_KEY => "post_author", // neseřadí abecedně, nýbrž podle ID authora, ale budou u sebe alespoň stejný authoři... KT_Admin_Columns::SORTABLE_PARAM_KEY => true, KT_Admin_Columns::INDEX_PARAM_KEY => 3, ) ); } add_filter( "kt_xxx_post_author_admin_column_filter", "kt_xxx_filter_post_author_admin_column", 10 ); function kt_xxx_filter_post_author_admin_column( $value ) { $postAuthor = kt_try_get_int( $value ); if ( kt_isset_and_not_empty( $postAuthor ) && $postAuthor > 0 ) { $carUser = new KT_XXX_Car_WP_User_Model( $postAuthor ); if ( kt_isset_and_not_empty( $eaUser ) ) { $html .= "<a href="\""" target="\"_blank\"">{$carUser->getFullName()}</a>"; $html .= " |
|
1 2 3 4 5 6 7 8 |
"; return $html; } } return $value; } |
Anebo klidně můžeme přidat nějaký vlasntí sloupec na základě hodnoty z post meta, např. řekněme že pro náš post type Car používáme post meta hodnotu pro značku:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
... if ( is_admin() ) { // vlastní sloupce v administraci $carAdminColumns = new KT_Admin_Columns( KT_XXX_CAR_KEY ); $carAdminColumns ->addColumn( KT_XXX_Car_Config::BRAND, array( KT_Admin_Columns::LABEL_PARAM_KEY => __( "Značka", KT_DOMAIN ), KT_Admin_Columns::TYPE_PARAM_KEY => KT_Admin_Columns::POST_META_TYPE_KEY, KT_Admin_Columns::METAKEY_PARAM_KEY => KT_EA_Group_Config::BRAND, KT_Admin_Columns::ORDERBY_PARAM_KEY => "meta_value", KT_Admin_Columns::SORTABLE_PARAM_KEY => true, KT_Admin_Columns::INDEX_PARAM_KEY => 4, ) ); } |
Tyto sloupce lze různě kombinovat vč. parametrů. Můžete zadat jeden sloupec až libovolné množství, ideálně však tak, aby se kompletní výčet sloupců (původní + vlastní) vešel na obrazovku…
Třída KT_Admin_Columns je volně založena na článku Custom Post Types columns od Ohada Raze…
Odebírejte novinky z FW
Sledujte nás!
Follow @ktstudiocz!