More Related Content Similar to WordCamp Geneva Presentation - Customising WordPress' Admin Panel - 19 Nov. 2016 (20) WordCamp Geneva Presentation - Customising WordPress' Admin Panel - 19 Nov. 20162. Hello! I’m
Jesper van Engelen.
Plugin developer
Core contributor
WP translator
AdminColumns.com
WP developer
5. SO WHY IS THE
BACKEND ALWAYS
SO DARN UGLY?
10. Or simply do it yourself: The Menu API
add_menu_page( [..] )
add_submenu_page( [..] )
Add
remove_menu_page( $slug )
remove_submenu_page( $slug )
Remove
12. Removing menu items
add_action( 'admin_menu', 'myplugin_clean_menu' );
function myplugin_clean_menu() {
// Default menu items
remove_menu_page( 'options-general.php' );
remove_menu_page( 'tools.php' );
remove_menu_page( 'edit-comments.php' );
remove_menu_page( 'edit.php' );
remove_menu_page( 'themes.php' );
// Plugin menu items
remove_menu_page( 'wpseo_dashboard' );
}
17. The Columns API
Add and remove columns
add_filter( 'manage_[post_type]_posts_columns', 'mp_columns' );
function mp_columns( $columns ) {
/* Add or remove columns here */
return $columns;
}
Create column content
add_action( 'manage_[post_type]_custom_column', 'mp_column_rent' );
function mp_column_rent( $column, $post_id ) {
/* Output content for columns */
}
18. The Columns API
Add and remove columns
add_filter( 'manage_[post_type]_posts_columns', 'mp_columns' );
function mp_columns( $columns ) {
/* Add or remove columns here */
return $columns;
}
Create column content
add_action( 'manage_[post_type]_custom_column', 'mp_column_rent' );
function mp_column_rent( $column, $post_id ) {
/* Output content for columns */
}
19. Add and remove columnsReal Estate:
add_filter( 'manage_realestate_posts_columns', 'mp_columns', 100 );
function mp_columns( $columns ) {
// Remove existing columns
unset( $columns['date'] );
unset( $columns['wpseo-score'] );
unset( $columns['wpseo-score-readability'] );
// Add new column)
$columns = array_slice( $columns, 0, 1, true )
+ array( 'image' => __( 'Image' ) )
+ array_slice( $columns, 1, NULL, true )
+ array( 'rent' => __( 'Rent' ) );
return $columns;
}
20. add_action( 'manage_realestate_posts_custom_column', 'mp_column', 10, 2 );
function mp_column( $column, $post_id ) {
// Image column
if ( $column == 'image' ) {
echo get_the_post_thumbnail( $post_id, array(80,80) );
}
// Monthly rent column
if ( $column == 'rent' ) {
$rent = get_post_meta( $post_id, 'rent', true );
if ( ! $rent ) {
_e( 'n/a' );
} else {
echo number_format( $rent, 0, '.', ',' ) . ' CHF';
}
}
}
Add column contentReal Estate: