Back in April I spoke at WordCamp Sheffield about Creating a Better WordPress Admin for Clients. The talk was mainly about customising the dashboard to make the experience better for clients, when editing and adding content. Since then I have managed to put into practice much of what I spoke about in to a new WordPress plugin – WP Basis.
WP Basis is a WordPress utility plugin that makes a number of changes to the WordPress dashboard (for your clients only) as well as providing a number of functions available for you to use when developing themes.
I thought the best way to break down what the plugin does was to put the main functions below and provide a link to the Github repository so that people can take a look at the plugin code itself.
WordPress Admin/Dashboard Modifications
As I have spoken about at WordCamps the WordPress dashboard can be a very complex environment for non-WordPress professionals. The WP Basis plugin attempts to simplify the admin screens for clients only, whilst keep the admin the same for experienced WordPress users.
The plugin adds a checkbox on the users profile page where the user can set themselves as a WP Basis Super User. This means the changes the plugin makes to the dashboard are not applied to these users. None WP Basis Super users get a simplified dashboard in the following ways:
- Removal of a number of the WordPress menus to prevent clients from clicking or setting things that will effect the site. The Settings, Tools, Dashboard Page (see below), Plugins and Comments menus are removed.
- Removal of some of the WordPress post meta boxes to clean up the post editing screen and prevent clients from adding meta boxes that could cause problems in the theme/site setup
- Addition of a Site Options menu at the bottom of the admin menus. This site options page contains social media links, contact email for use on the site, telephone number of a WYSIWYG box to add footer content.
WordPress Custom Meta Boxes Framework
Included in the plugin is the Human Made WordPress Custom Meta Boxes plugin which allows developers to easily add custom meta boxes to the post editing screens in order to make adding custom fields much more user friendly.
Styling posts can be made much easier with counter functions such as adding a “last class” CSS class to the last post within the WordPress loop. It also adds additional counting classes to widgets as well as WordPress menus.
Customised Dashboard Home Page
When a normal WordPress user logs in the plugin changes the admin landing page to include a more customised one. This is a great place for adding help, and additional adverts for your companies services. This page is split into tabs initially with just a welcome tab but the plugin is built (in many places) to be extensible and therefore you can easily add additional tabs to this screen using the filters and hooks available.
Post Type Descriptions
Having seen and used the excellent Post Type Descriptions Plugin from @stomptheweb I decided that it would be a good idea to include this in the plugin. It adds a description box to each post type which can then be outputted on the post type archive page.
Template Tags to Use in Your Themes
The plugin tries to give you the availability of a number of WordPress template tags which you can use in your sites themes and plugins. A few examples of the options are below:
wpbasis_content_nav()– this show the next and previous post links in a numbered format rather than just next/previous.
wpbasis_featured_img_url()– gets the post thumbnail or featured image url for a given featured image size.
wpbasis_get_blog_permalink() – return the page ID of at the page used for the sites blog posts or false it no page is being used.
wpbasis_get_current_url()– return the URL from the address bar of the current page
wpbasis_var_dump()– a more formatted version of the php
Amended Updating Capabilities
User which are not WP Basis super users have the capabilities for updating and adding plugins to WordPress removed, even if they are an administrator. This means that your clients cannot update WordPress with the potential to break something.
There are other things in the plugin but above is just a flavour of what the plugin does. Most of all I have tried to make this plugin as extensible as possible, outputting content using apply_filters to allow other plugins to change this content as well as allowing other plugins to add various content in places such as adding tabs to the dashboard screen or removing additional meta boxes using a filter.
The plugin is in the early stages and will no doubt evolve a lot more from here but any feedback is welcome. You can follow the evolution of the WP Basis plugin on Github. I am going to be making a beta release in the next week or so as there are only a few issues to fix. Watch this space!
Update – the plugin is not live on the WordPress plugin repository - http://wordpress.org/plugins/wpbasis/