Admin Expert Mode

Author:Scott Reilly
First released:2009-06-15
Last update:2015-02-17
Compatibility:WP 2.8 – 4.1.8
Download:[ zip ]

Allow users with access to the administration section to hide inline documentation and help text, which generally target beginning users.

Extended Description

WordPress has long provided inline documentation throughout the administrative interface that provide explanations for various features and input fields. This includes an explanations of excerpts, trackbacks, custom fields, page parents, etc. These are great for newcomers to WordPress, but for those sufficient familiarity these bits of text are no longer necessary and merely provide visual noise. This plugin gets rid of those descriptive texts.

The plugin’s behavior is made available as a per-user profile option. Each user who wishes to enable expert mode for themselves must do so individually by going into their profile, checking the field ‘Expert mode’, and then pressing the ‘Update Profile’ button.

Specifically, this plugin removes:

  • Categories

    • Description of “Category Name”
    • Description of “Category Slug”
    • Description of “Category Parent”
    • Description of “Description”
  • Edit Post

    • Description of “Custom Fields”
    • Description of “Excerpts”
    • Description of “Trackbacks”
  • Edit Page

    • Description of comment status
    • Description of “Custom Fields”
    • Verbose descriptions of “Attributes” (parent, template, and order)
  • Edit Link

    • Description of “Name”
    • Description of “Web Address”
    • Description of “Description”
    • Description of “Target”
    • Description of “Link Relationships (XFN)”
  • Tags

    • Description of “Tag name”
    • Description of “Tag slug”
  • Widgets

    • Text indicating that widgets are added from the listing of widgets on the left.
  • Install Themes

    • Help text for search field
    • Help text for “Feature Filter”
  • Themes – Custom Header

    • Help text simply stating you can upload files from you computer
  • Manage Plugins

    • Description of what plugins are and that they are activated/deactivated on that page
    • Text indicating that broken plugins can be renamed to remove them from being active
    • Description of the “Recently Active Plugins” section
  • Add New Plugins

    • Help text for search field
    • Help text for “Popular Tags”
  • Tools

    • Description paragraphs for “Press This”
  • Tools – Export

    • Description paragraphs for “Export”
  • Settings – General

    • Extra help text after input fields for “Tagline”, “Site address (URL)”, “E-mail address”, “Timezone”
  • Settings – Permalinks

    • Help text about “Common Settings”
    • Help text about “Optional”

NOTE: This plugin does NOT remove input field labels or section headers, nor anything containing actual data. In a few cases, descriptive text is left intact when it is of enough importance to warrant retention, or the markup structure does not facilitate easy removal.

Links: Plugin Homepage | Plugin Directory Page | Author Homepage

Find out more at the plugin’s WordPress Plugin Repository page.


Click to see full-size image.

  1. admin-expert-mode screenshot 1

    A screenshot of some of the panels of the ‘Edit Post’ admin page after this plugin is activated.

  2. admin-expert-mode screenshot 2

    A screenshot of the same panels of the ‘Edit Post’ admin page as they appear in a standard WP 3.3 installation. See the difference?

  3. admin-expert-mode screenshot 3

    A screenshot of the plugin’s profile checkbox on the user Profile page.

  4. admin-expert-mode screenshot 4

    A screenshot of the form on the ‘Categories’ admin page after this plugin is activated.

  5. admin-expert-mode screenshot 5

    A screenshot of the form on the ‘Categories’ admin page as they appear in a standard WP 3.3 installation. See the difference?


  1. Unzip inside the /wp-content/plugins/ directory for your site (or install via the built-in WordPress plugin installer)
  2. Activate the plugin through the ‘Plugins’ admin menu in WordPress
  3. Each user who wishes to enable expert mode for themselves must do so individually by going into their profile, checking the field ‘Expert mode’, and then pressing the ‘Update Profile’ button.


The plugin is further customizable via two filters. Typically, these customizations would be put into your active theme’s functions.php file, or used by another plugin.

c2c_admin_expert_mode (filter)

The ‘c2c_admin_expert_mode’ filter allows you to dynamically determine whether the admin expert mode should be active.


  • $is_active (bool): Boolean indicating if admin expert mode is currently active
  • $user_login (string): Login of the current user


<?php add_filter( 'c2c_admin_expert_mode', 'aem_never_let_bob_activate', 10, 2 );
// Never let user 'bob' activate admin expert mode
function aem_never_let_bob_activate( $is_active, $user_login ) {
    if ( 'bob' == $user_login )
        return false;
    return $is_active; // Otherwise, preserve activation status for user
} ?>

c2c_admin_expert_mode_default (filter)

The ‘c2c_admin_expert_mode_default’ filter allows you to specify whether admin expert mode should be active for users by default or not. This filter only applies to users who visit the admin for the first time after the plugin is activated. Once a user visits the admin, their setting gets set to the default state and will no longer be affected by this filter. If you wish to affect the setting for existing users, use the ‘c2c_admin_expert_mode’ filter instead.


  • $is_active (bool): Boolean indicating if admin expert mode is active by default (default is false)

Example (only valid in WP 3.0+):

<?php // Enable admin expert mode for all users by default
add_filter( 'c2c_admin_expert_mode_default', '__return_true' );

Release Log

2.1 (2015-02-17)

  • Reformat plugin header
  • Update hiding of a few existing help text
  • Use DIR instead of dirname(__FILE__)
  • Note compatibility through WP 4.1+
  • Minor code reformatting (bracing, spacing)
  • Various inline code documentation improvements (spacing, punctuation)
  • Change documentation links to to be https
  • Update screenshots
  • Update copyright date (2015)
  • Add plugin icon
  • Update .pot

2.0 (2013-12-22)

  • Update hiding of ‘Install Plugins’ page help text for WP 3.8
  • Update hiding of ‘Permalink Settings’ page help text for WP 3.8
  • Minor documentation tweaks
  • Note compatibility through WP 3.8+
  • Update copyright date (2014)
  • Change donate link
  • Update screenshot of profile page
  • Add banner


  • Update hiding of ‘Tools – Export’ page help text for WP 3.5
  • Update hiding of ‘Tools’ page help text for WP 3.5
  • Fix to hide ‘Settings – Permalinks’ page help text
  • Remove register_profile_page_hooks()
  • Add $user_id to maybe_save_options() and remove need to check $_POST
  • Add check to prevent execution of code if file is directly accessed
  • Modified documentation
  • Note compatibility through WP 3.5+
  • Update copyright date (2013)
  • Minor code reformatting (spacing)
  • Create repo’s assets directory
  • Move screenshots into repo’s assets directory


  • Use string instead of variable to specify translation textdomain
  • Re-license as GPLv2 or later (from X11)
  • Add ‘License’ and ‘License URI’ header tags to readme.txt and plugin file
  • Remove ending PHP close tag
  • Note compatibility through WP 3.4+


  • Change activation admin notice to recognize if settings is already true for user and say so
  • Hook ‘admin_enqueue_scripts’ action instead of ‘admin_head’ to output CSS
  • Hook ‘load-profile.php’ to add action for the profile.php page rather than using pagenow
  • Remove load_textdomain() and private static $textdomain_subdir and just load textdomain directly in do_init()
  • Add version() to return plugin version
  • Add register_styles(), enqueue_admin_css(), register_profile_page_hooks()
  • Move all CSS into admin.css
  • Remove add_css()
  • Change check in maybe_save_options() to ensure profile options are being updated
  • Update screenshots for WP 3.3
  • Add two new screenshots
  • Note compatibility through WP 3.3+
  • Create ‘lang’ subdirectory and move .pot file into it
  • Regenerate .pot
  • Add link to plugin directory page to readme.txt
  • Add ‘Domain Path’ directive to top of main plugin file
  • Minor code reformatting (spacing)
  • Update copyright date (2012)


  • Fix accidental hiding of permalink rules on permalinks settings page


  • Fix accidental hiding of submit button on permalinks settings page


  • Remove more help text on Custom Header, Tools, Settings – General, and Settings – Permalinks pages
  • Note compatibility through WP 3.2+
  • Tiny code formatting change (spacing)
  • Fix plugin homepage and author links in description in readme.txt


  • Rename class from ‘AdminExpertMode’ to ‘c2c_AdminExpertMode’
  • Switch from object instantiation to direct class invocation
  • Explicitly declare all functions public static and class variables private static
  • Add .pot file
  • Documentation tweaks
  • Note compatibility through WP 3.1+
  • Update copyright date (2011)


  • Display notice on plugin’s activation to remind admin that expert mode must be enabled for each user before it takes effect for the user
  • Allow configuring of default expert mode state for all users, via ‘c2c_admin_expert_mode_default’ filter (initially set to false)
  • Allow enabling of expert mode for all users, via ‘c2c_admin_expert_mode’ filter (having it return true)
  • Add true localization support
  • Handle text on ‘Install Themes’ page
  • Handle text on ‘Add New Plugins’
  • Check for is_admin() before defining class rather than during constructor
  • Add function is_admin_expert_mode_active() to encapsulate logic to determine if expert mode is active for the current user
  • Change plugin description
  • Instantiate object within primary class_exists() check
  • Assign object instance to global variable $c2c_admin_expert_mode to allow for external manipulation
  • Add PHPDoc documentation
  • Note compatibility with WP 2.9+ and 3.0+
  • Drop compatibility with versions of WP older than 2.8
  • Minor code reformatting (spacing)
  • Remove docs from top of plugin file (all that and more are in readme.txt)
  • Remove trailing whitespace in header docs
  • Add Changelog, Upgrade Notice, and Filters sections to readme.txt
  • Fix sublist syntax usage in readme.txt
  • Add package info to top of plugin file
  • Update copyright date


  • Additionally hide inline docs on categories and tags admin pages
  • Noted WP 2.8+ compatibility


  • Initial release

Copyright & Disclaimer

Copyright © 2009-2015 by Scott Reilly (aka coffee2code)

This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

Discussion / Support

Have any questions, comments, or suggestions? Please provide them via the plugin’s support forum. I’ll do my best to reply in a timely fashion and help as best I can.

Unfortunately, I cannot provide guaranteed support, nor do I provide support via any other means.

Was this plugin useful useful to you? Consider giving it a rating. If you’re inclined to give it a poor rating, please first post to the support forum to give me a chance to address or explain the situation.