Update January 1, 2022 (Happy New Year):
Cindi wrote in asking how to restrict the link to “drafts” in the menu to admin-level users only. I accomplished this by tucking the function inside an “if” statement that reads like this: “if(current_user_can( ‘administrator’ )){……[rest of code….].”
Below is the full, new function restricting the link to drafts to admin-level users only:
<?php
/*
Plugin Name: Drafts Link in Posts Menu
Plugin URI: https://davidwalsh.name/wordpress-admin-add-menu-item
Description: Adds a link to draft items from the Posts admin menu. hellotumo.com took David's work and made it into a plugin. Version 2 restricts to admin users only.
Version: 2.0
*/
function add_drafts_admin_menu_item() {
if(current_user_can( 'administrator' )){
add_posts_page('Drafts', 'Drafts', 'read', 'edit.php?post_status=draft&post_type=post');
add_pages_page('Drafts', 'Drafts', 'read', 'edit.php?post_status=draft&post_type=page');
} /*close if statement*/
} /*close whole function*/
add_action('admin_menu', 'add_drafts_admin_menu_item');
?>
David Walsh has the secret sauce for getting a link to your post drafts in the posts menu option of your WordPress site. Yes!
I built upon his work and created a custom plugin that does the same. Why?
Because I hate it when a site update wipes out my functions.php custom code. By using a plugin, you can keep this handy-dandy shortcut secure amid the next upgrade.
To do this, just copy the code below into a text file, save it as yourspecialsecretsauce.php, drop it into your plugins directory, and activate it. The original full code of version 1 is below:
<?php
/*
Plugin Name: Drafts Link in Posts Menu
Plugin URI: https://davidwalsh.name/wordpress-admin-add-menu-item
Description: Adds a link to draft items from the Posts admin menu. hellotumo.com took David's work and made it into a plugin.
Version: 1.0
*/
function add_drafts_admin_menu_item() {
// $page_title, $menu_title, $capability, $menu_slug, $callback_function
/* add_posts_page(__('Drafts'), __('Drafts'), 'read', 'edit.php?post_status=draft&post_type=post');
add_pages_page(__'Drafts'), __('Drafts'), 'read', 'edit.php?post_status=draft&post_type=page');
} */
// $page_title, $menu_title, $capability, $menu_slug, $callback_function
add_posts_page('Drafts', 'Drafts', 'read', 'edit.php?post_status=draft&post_type=post');
add_pages_page('Drafts', 'Drafts', 'read', 'edit.php?post_status=draft&post_type=page');
}
add_action('admin_menu', 'add_drafts_admin_menu_item');
?>