Vlastní sloupce v přehledech v administraci
Často potřebuji do administračních přehledů doplnit i jiné sloupce, než jsou ty základní (zaškrtávátko, nadpis a datum). Existují na to velmi schopné pluginy, ale často na to stačí pár řádků kódu.
Mějme vlastní typ obsahu Klient. Pak nám stačí následující funkce:
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 28 29 30 31 32 |
add_action( 'manage_klient_posts_columns', 'klientAdminSloupce' ); add_action( 'manage_klient_posts_custom_column', 'klientAdminSloupceContent', 10, 2); add_action( 'admin_head', 'klientAdminHead' ); function klientAdminSloupce( $columns ) { $new_columns = array(); foreach( $columns as $index=>$title ) { $new_columns[ $index ] = $title; if( $index == 'cb' ) { $new_columns[ 'poradi' ] = 'Pořadí'; $new_columns[ 'foto' ] = 'Foto'; } } return $new_columns; } function klientAdminSloupceContent( $column_name, $post_id ) { if( $column_name == 'foto' ) { echo '...'; // fotografie } else if( $column_name == 'poradi' ) { $post = get_post($post_id); echo $post->menu_order; } } function klientAdminHead( ) { echo '<style type="text/css"> .post-type-klient .wp-list-table { table-layout: auto;} .type-klient .column-foto { text-align: left; width:100px !important; overflow:hidden } .type-klient .column-poradi { text-align: left; width:100px !important; overflow:hidden } </style>'; } |
Díky akcím manage_klient_posts_columns a manage_klient_posts_custom_column můžeme upravit zobrazené sloupce, a obsah jejich buněk.
A proč ještě vypisuji ono CSS? Protože po přidání nových sloupců se vzhled tabulky trochu rozpadne, a je třeba novým sloupcím nastavit rozumnou šířku (v závislosti na tom, co budou obsahovat).
← Zákaz přístupu na detailové stránky vlastního typu obsahu Zachování hierarchie zatržených kategorií → Všechny WordPress kódy