How to White Label the WordPress Admin

Dev Tutorials

Last Updated: Time to Read: 8 minutes

This tutorial explains some ways in which you can modify the WordPress admin to add your logo or custom links using WordPress Core hooks. These can be added to a child theme or extension intended for a single site install –

Caviats: Removing Layers logos, links, text etc in child themes or extensions intended for public distribution is  a violation of the GPL license. We do not recommend adding WordPress white-label functions to commercial themes or extensions as it may cause them to fail the submission process. See our tutorials for adding a custom welcome box to the Dashboard and how to add your own onboarding pages instead.

If you design or setup websites for clients, you know how important it is to offer a smooth and branded, yet client-proof administration experience. White-labeling is a term that describes re-branding or removing 3rd party branding from your website’s front and back-end. Doing so increases brand recognition for your design company or service. While it is not possible to completely re-brand a WordPress site without extensive customization, you can white-label or brand the most essential and visible aspects of the WordPress Admin interface without having to resort to custom Admin themes or other coding hacks.

You can take white-labeling one step further and also customize certain aspects of the WordPress Admin through menu tools and role editors to simplfy its use and keep your clients from dangerous options such as updates or code editors. Here we’ll touch on all the ways you can white-label your client site through core hooks. If you are implementing this via a plugin for your site rather than a child theme, take care to use the correct file path constants.

For a look at how to do all of these things using free plugins such as AG Custom Admin and Admin Menu Editor, see our blog post on Easy White-labeling WordPress for your clients.

Layers will add a small Layers badge to the footer of your site by default which you can disable from the Customizer under the Footer Styling panel. Of course, you get extra-awesome points for leaving it on and helping spread the word about the Layers framework.

support-layers

The text footer of Layers contains a default copyright that you may customize from the Customizer under the Footer Styling panel. This field also accepts basic HTML, so adding an icon or logo of your own is as simple as grabbing the file url to your image in the Media Library, and linking it from a standard <img>  tag. See How to Add Images to the Footer Copyright area for a detailed tutorial on adding images in the Layers footer.

copyrighttext

If your clients or staff are logging in through the traditional WordPress admin page, they will be greeted by a WordPress logo that links to the site main page. This can be confusing for less-savvy users, especially if they click that logo and are whisked away from the login without knowing quite what happened.

wp-login

If you have created a custom child theme for your client site, the admin logo can be changed with a custom function added to your functions.php that hooks login_head and login_headerurl

And if you want to remove the link:

Once logged in, your client is going to see the WordPress Dashboard with the default Howdy! greeting and a WordPress branded admin bar.

You can use the same custom function + hook technique as changing the login logo to change the admin icon from your child theme via admin_head.

To do this on your own with a child theme, you would need to write a custom admin.css file, then enqueue it normally from your Child Theme functions:

You can also write the CSS directly to the function and have it output in the admin head:

For a detailed walkthrough on building admin CSS, see Customizing the WordPress Admin by our friends at Tuts+

At the bottom of every page in the WordPress admin you will find a Thank You for Creating with WordPress! message and a version number. If your clients don’t know or care that you are using WordPress for the site, or if you just want more control over outgoing links and branding, you can change or remove this easily.

This time hook a custom function to admin_footer_text and output a simple string. Simple HTML can be included to display an icon or link a bit of text.

Now that you have customized the visual aspects of the WordPress Admin, you can start thinking about the content you want your clients and site users to see. The WordPress Dashboard is the first content a logged in user sees, and while anyone can customize their own view via the Screen Options menu, you may need to remove existing metaboxes, or add some new ones to deliver the best user experience for your client.

This snippet removes the Quick Press, At a Glance, Blog Feed, Layers AddOns, Layers StoreKit and WooCommerce Status boxes from the Dashboard, leaving only Activity, Comments, Incoming Links and whatever other meta boxes your plugin selection may add. To remove other boxes. you need to grab the widget’s ID using your browser inspector, used as the first argument in the remove_meta_box() function.

Custom Dashboard Widgets

In this snippet, line 2 has you using wp_add_dashboard_widget() to add a widget named Theme Details with an ID of my_dashboard_widget containing the content output by the layers_child_theme_info()  custom function you define next.

Note: To remove the Welcome Panel specifically, simply remove the welcome_panel hook:

You can completely customize the Welcome panel rather than remove it by filtering welcome_panel to add your own HTML. See How to Replace the WordPress Welcome Panel in the Admin Dashboard

In most cases where you are maintaining your client websites, it is a good idea to restrict access to certain admin areas, both for the safety of the site overall, and simply to reduce confusion for clients unfamiliar with the WordPress Admin. Examples might be hiding links to plugin settings (such as AG Custom Admin), the Appearance > Editor screen or Layers Marketplace. Customizing the Admin menu is a task truly best left to a plugin so you don’t have to maintain code updates along with the frequently morphing WordPress security standards.  Both AG Custom Admin and specialized plugins like Admin Menu Editor are actively developed and updated, and can get the job done for free.

If using AG Custom Admin, you may edit all admin menu labels and access rights from the Admin Menu tab of the settings. Checking a menu item will remove it from access for Editors, so this plugin depends on you ensuring your clients User Role is set to Editor and not Administrator. If your client is the type that likes to see the Admin role on their account, but is too dangerous to be left with full rights, you can use another very handy free plugin called Members, written by WordPress Core developer Justin Tadlock. This is the best approach if you choose to move forward with using the Admin Menu Editor plugin instead, and here’s why.

Creating a Super User and Editing Client Privileges

  1. With the Members plugin active, go to Users > Roles.
  2. Click Add New to add a new role called “Super-Admin.”
  3. Check the boxes on all the capabilities and Save
  4. Now back out to the main Users list and edit yourself. Select the new Super Admin role from the Role drop-down and Save.
  5. Return to the Users > Roles page and edit Administrator. Here is where you can remove some capabilities from this role. Most of these are self-explanatory and organized within the admin areas they refer to.  Common capabilities you want to Deny would be:
    • General: edit_roles: deny ability to change your custom roles
    • Appearance: switch_themes: deny ability to switch themes from your set active theme.
    • Plugins: activate_plugins: deny ability to install new plugins that may potentially break the site.

The important step here is that your clients are assigned the Admin role while you have Super Admin with all capabilities. When using Admin Menu Editor for example, you can now turn off specific Admin Menu items or sub-links by setting them to the Super Admin role. This is useful for hiding menu links such as Marketplace, Tools, Appearance > Editor and other plugin items you might have such as Performance or SEO. You can also hide the entire Layers menu from your clients if you wish – they can still access the New Page and Edit Layout options from Pages or Appearance > Customize.

With both AG Custom Admin and Admin Menu Editor, you may also customize menu icons and labels and rearrange them with drag and drop if needed.

Easily add new links or entire Admin Menus from the Admin Menu tab of AG Custom Admin (bottom of page) or using the Add Menu button in the Admin Menu Editor options. This allows you to build helpful menus that link to most-used admin pages or offsite resources.

If you have a Child Theme, you can do this directly without a plugin. See Paul Lunds wonderful article on Custom Admin Menus

If you have developed a Layers Child Theme for your client project or are thinking about using one instead of plugins, you can add a custom onboarding function that displays the first time your client logs in with your child theme active, or which they can revisit from a custom menu option. We wrote a full developer article on how to do this in a Layers Child Theme as part of the Child Theme Author Guide: How to Add Help Pages & Onboarding to Layers Themes or Extensions

In extreme cases where you need to remove Layers branding from things like Widgets, you must use a translation tool to remove each instance of “Layers.” See our guide on translating Layers for plugin suggestions and tips.