22
CUSTOMISING WORDPRESS’ ADMIN PANEL #wcgva

WordCamp Geneva Presentation - Customising WordPress' Admin Panel - 19 Nov. 2016

Embed Size (px)

Citation preview

Page 1: WordCamp Geneva Presentation - Customising WordPress' Admin Panel - 19 Nov. 2016

CUSTOMISING WORDPRESS’ADMIN PANEL

#wcgva

Page 2: WordCamp Geneva Presentation - Customising WordPress' Admin Panel - 19 Nov. 2016

Hello! I’mJesper van Engelen.

Plugin developer

Core contributor

WP translator

AdminColumns.com

WP developer

Page 3: WordCamp Geneva Presentation - Customising WordPress' Admin Panel - 19 Nov. 2016

We’re lucky to bein WordPress

#wcgva @jesperengelen

Page 4: WordCamp Geneva Presentation - Customising WordPress' Admin Panel - 19 Nov. 2016

WORDPRESS POWERS 47,847,425 WEBSITES

13% 16%

18% 22%

24% 26%

2011 2012 2013 2014 2015 2016

(give or take)

Page 5: WordCamp Geneva Presentation - Customising WordPress' Admin Panel - 19 Nov. 2016

SO WHY IS THE BACKEND ALWAYSSO DARN UGLY?

Page 6: WordCamp Geneva Presentation - Customising WordPress' Admin Panel - 19 Nov. 2016

What have you done to

my beautiful WordPress?

Page 7: WordCamp Geneva Presentation - Customising WordPress' Admin Panel - 19 Nov. 2016

Let’s cleanwp-admin

#wcgva @jesperengelen

Page 8: WordCamp Geneva Presentation - Customising WordPress' Admin Panel - 19 Nov. 2016

1.The Menu (API)

Keep what you need, discard what you don’t

Page 9: WordCamp Geneva Presentation - Customising WordPress' Admin Panel - 19 Nov. 2016

3 plugins

“ Why do it yourself if somebody hasalready done it for you?

Page 10: WordCamp Geneva Presentation - Customising WordPress' Admin Panel - 19 Nov. 2016

Or simply do it yourself: The Menu API

add_menu_page( [..] )add_submenu_page( [..] )

Add

remove_menu_page( $slug )remove_submenu_page( $slug )

Remove

Page 11: WordCamp Geneva Presentation - Customising WordPress' Admin Panel - 19 Nov. 2016

WHAT’S ASLUG?

Page 12: WordCamp Geneva Presentation - Customising WordPress' Admin Panel - 19 Nov. 2016

Removing menu items

add_action( 'admin_menu', 'myplugin_clean_menu' );

function myplugin_clean_menu() {// Default menu itemsremove_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 itemsremove_menu_page( 'wpseo_dashboard' );

}

Page 13: WordCamp Geneva Presentation - Customising WordPress' Admin Panel - 19 Nov. 2016

Old New

Page 14: WordCamp Geneva Presentation - Customising WordPress' Admin Panel - 19 Nov. 2016

2.The Columns (API)

Display information that is relevant to your content

Page 15: WordCamp Geneva Presentation - Customising WordPress' Admin Panel - 19 Nov. 2016

THEPROBLEM

Page 16: WordCamp Geneva Presentation - Customising WordPress' Admin Panel - 19 Nov. 2016

2 plugins

“ Why do it yourself if somebody hasalready done it for you?

Page 17: WordCamp Geneva Presentation - Customising WordPress' Admin Panel - 19 Nov. 2016

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 */}

Page 18: WordCamp Geneva Presentation - Customising WordPress' Admin Panel - 19 Nov. 2016

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 */}

Page 19: WordCamp Geneva Presentation - Customising WordPress' Admin Panel - 19 Nov. 2016

Add and remove columnsReal Estate:

add_filter( 'manage_realestate_posts_columns', 'mp_columns', 100 );function mp_columns( $columns ) {

// Remove existing columnsunset( $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;}

Page 20: WordCamp Geneva Presentation - Customising WordPress' Admin Panel - 19 Nov. 2016

add_action( 'manage_realestate_posts_custom_column', 'mp_column', 10, 2 );function mp_column( $column, $post_id ) {

// Image columnif ( $column == 'image' ) {

echo get_the_post_thumbnail( $post_id, array(80,80) );}

// Monthly rent columnif ( $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:

Page 21: WordCamp Geneva Presentation - Customising WordPress' Admin Panel - 19 Nov. 2016

Old New

OH YEAH!

Page 22: WordCamp Geneva Presentation - Customising WordPress' Admin Panel - 19 Nov. 2016

THANKS!Any questions?…or talk to me on Twitter @jesperengelen