wp_admin_bar_new_content_menu( WP_Admin_Bar $wp_admin_bar )

In this article

Adds “Add New” menu.

Parameters

$wp_admin_barWP_Admin_Barrequired
The WP_Admin_Bar instance.

Source

function wp_admin_bar_new_content_menu( $wp_admin_bar ) {	$actions = array();	$cpts = (array) get_post_types( array( 'show_in_admin_bar' => true ), 'objects' );	if ( isset( $cpts['post'] ) && current_user_can( $cpts['post']->cap->create_posts ) ) {	$actions['post-new.php'] = array( $cpts['post']->labels->name_admin_bar, 'new-post' );	}	if ( isset( $cpts['attachment'] ) && current_user_can( 'upload_files' ) ) {	$actions['media-new.php'] = array( $cpts['attachment']->labels->name_admin_bar, 'new-media' );	}	if ( current_user_can( 'manage_links' ) ) {	$actions['link-add.php'] = array( _x( 'Link', 'add new from admin bar' ), 'new-link' );	}	if ( isset( $cpts['page'] ) && current_user_can( $cpts['page']->cap->create_posts ) ) {	$actions['post-new.php?post_type=page'] = array( $cpts['page']->labels->name_admin_bar, 'new-page' );	}	unset( $cpts['post'], $cpts['page'], $cpts['attachment'] );	// Add any additional custom post types.	foreach ( $cpts as $cpt ) {	if ( ! current_user_can( $cpt->cap->create_posts ) ) {	continue;	}	$key = 'post-new.php?post_type=' . $cpt->name;	$actions[ $key ] = array( $cpt->labels->name_admin_bar, 'new-' . $cpt->name );	}	// Avoid clash with parent node and a 'content' post type.	if ( isset( $actions['post-new.php?post_type=content'] ) ) {	$actions['post-new.php?post_type=content'][1] = 'add-new-content';	}	if ( current_user_can( 'create_users' ) || ( is_multisite() && current_user_can( 'promote_users' ) ) ) {	$actions['user-new.php'] = array( _x( 'User', 'add new from admin bar' ), 'new-user' );	}	if ( ! $actions ) {	return;	}	$title = '<span class="ab-icon" aria-hidden="true"></span><span class="ab-label">' . _x( 'New', 'admin bar menu group label' ) . '</span>';	$wp_admin_bar->add_node(	array(	'id' => 'new-content',	'title' => $title,	'href' => admin_url( current( array_keys( $actions ) ) ),	'meta' => array(	'menu_title' => _x( 'New', 'admin bar menu group label' ),	),	)	);	foreach ( $actions as $link => $action ) {	list( $title, $id ) = $action;	$wp_admin_bar->add_node(	array(	'parent' => 'new-content',	'id' => $id,	'title' => $title,	'href' => admin_url( $link ),	)	);	}	if ( is_multisite() && current_user_can( 'create_sites' ) ) {	$wp_admin_bar->add_node(	array(	'parent' => 'new-content',	'id' => 'add-new-site',	'title' => _x( 'Site', 'add new from admin bar' ),	'href' => network_admin_url( 'site-new.php' ),	)	);	} } 

Changelog

VersionDescription
6.5.0Added a New Site link for network installations.
3.1.0Introduced.

User Contributed Notes

You must log in before being able to contribute a note or feedback.