WordPress CMS modifications
Making WordPress the ultimate CMS!

WP-CMS Post Control plugin

Requires at least: WordPress 2.9
Tested up to: WordPress 3.0-beta
Current latest version: v2.21
Download: Latest version from official WordPress plugin site

Post Control gives you complete control over your write options for every user level/role in WordPress. It not only allows you to hides unwanted items like custom fields, trackbacks, revisions etc. but also gives you a whole lot more control over how WordPress deals with creating content.

Simplify the and customise the write post and page areas of WordPress and just show the controls you need. Great for de-cluttering – do you really need those pingback and trackback options… now you can decide what users can see and use!

You can also disable autosaves, revisions and disable the Flash uploader.

New to version 2 is the ability to hide different items for each user role – administrator, editor, author and even contributor.

You can control the display of the following post options for each role level:

  • Post Tags
  • Post Categories
  • Post Excerpt
  • Post Trackbacks
  • Post Custom Fields
  • Post Discussion
  • Post Comment & Ping Options
  • Post Author

You can control the display of the following page options:

  • Page Custom Fields
  • Page Discussion
  • Page Comment & Ping Options
  • Page Attributes

You can control the display of the following global post/page options:

  • Post/Page Media upload
  • Disable WordPress Autosave
  • Disable WordPress Post Revisions
  • Disable flash uploader and just use browser uploader
  • NEW IN 2.2 – Control number of post revisions saved!


First time install

You can use the built-in WordPress add plugin system to install Post Control once logged into your site, it’s quick and easy!

If you want to manually upload and install:

1. Get the latest version of this plugin at the official WordPress plugin directory.
2. Decompress .zip file, retaining file structure.
3. Upload directory wp-cms-post-control and all containing files to your plugins directory – normally /wp-content/plugins/
4. Activate the plugin through the Plugins menu in WordPress
5. Configure options through Settings > Post Control and Settings > Post Control Core

Update existing install

The automatic plugin update feature of WordPress works fine with this plugin. If your server supports it you should certainly use this as it’s the easiest way to keep your plugins up-to-date.

IMPORTANT When you upgrade, you should go to the options page and re-save your Post Control options to refresh the settings.



If you have any problems, please leave a comment below and I will address it as quickly as possible. Serious bugs and WordPress version upgrades are prioritized – new feature requests are down to what my clients (and I!) need as I have very little resource available on-top of my freelance project commitments (that pay the bills!) and other open source commitments (which don’t!)


  • Admin comment by Jonny · March 21, 2010 at 3:23 pm

    For those of you experiencing errors, PLEASE UPDATE TO THE LATEST VERSION – 2.12 which should fix them.

  • garrett · March 22, 2010 at 1:40 am

    hello jonny, thanks very much for this plugin, is there any way i can get the last version? I had just installed and began testing it on a site I am just building and it worked perfectly as i was able to add div id’s to hide (for items such as all in one seo pack and sociable that add blocks to the post publishing pages)?

    I upgraded the plugin (without backing up like a dummy) and realized you had changed the structure of the plugin too late!

    thank you very much for your help, please feel free to email me.

    thanks again, garrett

  • Admin comment by Jonny · March 22, 2010 at 2:20 am

    Hi Garrett, you can find every revision of the plugin at the WordPress plugin page – just click on ‘other versions’ to see them all.

    I have your functionality on the list for upgrades – as I do exactly the same thing! You can probably re-apply your hack temporarily in V2 by adding your meta box definition into the array that builds the forms – see the ‘inc’ directory!

  • garrett · March 22, 2010 at 3:20 am

    jonny, awesome, thank you very much, its great to get a quick reply, some plugin developers take so long, if at all to answer.

    tried adding the hack to the array in the updated version, no joy however. I have to admit, i only took a minute to try though, and of course i know the WP plugin pages have older versions as well, just a bit flustered today.

    thanks very much again, garrett

  • Admin comment by Jonny · March 22, 2010 at 9:49 am

    No problems Garrett – hope you get on ok. I’ll be updating the plugin in the next few weeks to accomodate this sort of functionality – as I said that’s how I hack it up now for clients.

  • Anonymous · March 25, 2010 at 4:37 pm


    Core options, such as “Disable autosave” and “Disable revisions” do not appear to be saved — WordPress 2.9.2 + SQLlite database backend (PDO for WordPress).


  • Admin comment by Jonny · March 25, 2010 at 8:53 pm

    I personally carry out extensive testing mysql (3 different servers, multiple WP configs) and have not tried it using SQL Lite / PDO. The recomended platform for WordPress is MySQL, but I don’t see why this wouldn’t work for you.

    At the 2.12 update (snag catches) I was also in-touch with a number of people who confirmed that 2.12 corrected all issues – and there have been no more bug reports (thankyou for letting me know guys!)

    Could I ask that you delete the plugin through WordPress (not FTP) to clear out the database options, and re-install. Try saving some post control and core options. There should be 2 entries in your WordPress _options table (if you save values in the plugin) called ‘wpcms_pcontrolopts’ and ‘wpcms_pcontrolopts_ex’ – can you let me know how you get on?

  • Kevin · March 26, 2010 at 4:27 am

    We run a multi-author, multi-editor news site. I just updated to the latest version. I’m having a problem that I never had before. Our site is set to have comments enabled on new posts by default. We like it set up so that authors cannot change this. Before, I had it so that the Discussion section was hidden from them, but new posts still observed the default “enable comments” setting in wordpress. Now, if I have the discussion hidden from my authors, new posts have comments disabled.

  • Admin comment by Jonny · March 26, 2010 at 10:32 am

    Hi Kevin – Post Control doesn’t override these settings, in-fact it doesn’t touch any core WordPress settings at-all so when it i deactivated everything returns to normal.

    The enable comments function is set under settings>discussion>default article settings – setup the global option for ‘Allow people to post comments on new articles’ to your preference and then it will be respected on all future posts and pages regardless of if the comments box is shown or hidden.

  • Anonymous · March 26, 2010 at 3:01 pm


    Regarding our PDO/SQLite install — I couldn’t find either “wpcms_pcontrolopts” or “wpcms_pcontrolopts_ex” option names.

    This is what we have here:


  • paul · April 1, 2010 at 5:12 pm

    Is there a way to use this with wpmu such that all blogs get the same default settings/configuration, and they cannot be changed?

  • Wordpress CMS Tips – Part 2 « Pippin's Pages · April 6, 2010 at 3:10 am

    [...] WP CMS Post Control [...]

  • Admin comment by Jonny · April 8, 2010 at 3:13 pm

    Those are the V1 database settings, but they won’t clash. If you disable V1.x it will delete those old settings.

  • Admin comment by Jonny · April 8, 2010 at 3:16 pm

    WordPress 3.0 multi-blog support is something I’d like to build in the future, but it may be a while until I get time to code it.

  • Hannah · April 11, 2010 at 1:55 am

    I’m using the Role Manager plugin. I’ve set up custom roles and assigned each a level that would correspond to the regular Author, Editor, etc. Post Control seems to work on my own Administrator role, but doesn’t have any effect on the others. Does the code search for “author” and “editor” rather than user levels?

    By the way, I love the plugin. I have a lot of web-illiterate clients (as they themselves have said), and this makes everything so much cleaner and simpler.

  • Joe · April 11, 2010 at 8:28 pm

    I am running WordPress 2.9.2 on a VPS. When I install the the plugin and activiate it, the screen goes BLANK. When I remove the plugin from the plugin folder via ftp, the site returns to normal. I have tried to install and activate both from WordPress and via ftp. Same result, the screen goes blank. I cannot access the site from another computer. This is a new problem to me. I have always been able to install and activate plugins. I am not a novice, but not an expert either. Thanks for any advice.

  • Admin comment by Jonny · April 11, 2010 at 9:01 pm

    Hi Hannah – that’s exactly it, my plugin works on roles rather than user levels – ‘administrator’, ‘editor’ etc. It has been recommended by the core team that we move away from role levels ‘ie admin = level_10) to user roles.

    This will not merge correctly with the Role Manager plugin – although I know that a-lot of people use Role manager. Have you created custom roles assigned to your users in Role Manager?

  • Admin comment by Jonny · April 11, 2010 at 9:07 pm

    Joe – I have run extensive testing on the plugin on a number of platforms (including my own VPS). Also, I know quite a few different people that run this plugin on different platforms and have no problems. There shouldn’t be any reason for this to happen – I would make sure that you follow the install options – ensure you keep all the files together in the wp-cms-post-control directory and put that whole directory into your plugins directory.

    The plugin only triggers when you are in the admin panel – so something must definitely be up if you are getting a blank screen on the site – please do double check those install options and directory paths.

  • Hannah · April 12, 2010 at 12:36 am

    I have created custom roles. It’s a small learning center thing, so I have “faculty” and “student” roles assigned. I just checked it, though, and the names of the roles don’t show up to anyone but me. In a pinch I can always revert to author and editor and it won’t make a difference to everyone else.

    Is it possible to tweak the code to define user_admin as level_10, etc., or is it too complicated?

  • Admin comment by Jonny · April 12, 2010 at 11:01 am

    Hannah – that’s it then, you have custom roles assigned to users you have created in Role Manager. This pluginis only designed to work with the core WordPress roles.

    If you know a-little PHP, it would be fairly easy to adapt the plugin as-long as the user type is properly registered in Role Manager.

    In Post Control there is a single function that detects user role, you could amend this to your own instead of the core roles. You would also have to amend the admin form builder function to reflect your custom user types.

    Please do be aware though that if you do this hack on Post Control, ensure you backup your plugin files and comment the PHP clearly, so you can re-apply the hack when the plugin gets upgraded.

    Also, be aware that if you use the automatic plugin update in WordPress it will over-write your hacked Post Control files – so you will have to re-apply (and check) that your hacks work.

    It all depends what you are using Role Manager for – in my honest opinion it is overkill for all but the most complex multi-role content management systems. Have you seen how the standard WordPress roles match-up to your requirements? Check out http://codex.wordpress.org/Roles_and_Capabilities

  • 個人的に外せないWordPressのおすすめプラグイン20 - wembley · April 12, 2010 at 3:58 pm

    [...] 6. WP-CMS Post Control WPの投稿関係の基本機能を弄るプラグイン。何より嬉しいのはWPのオートセーブ機能とリビジョン機能を無効にできること。 勝手にゴミキャッシュが増えていくのを防ぐことができます。 [...]

  • Simplicity · April 26, 2010 at 8:05 pm

    how can I remove the “Post Control Core” entry from the menu?

  • Admin comment by Jonny · April 29, 2010 at 10:00 am

    Hi Simplicity – this is actually very easy (but will stop you getting to the ‘core’ controls!), simply comment out (or delete, but comment out is better so you an restore it – use ‘//’) line 328 in the main post control plugin file wp-cms-post-control.php and this will remove the menu entry as you requested.

    Note that if you set the ‘core’ options before hiding the menu, the options will persist – it won’t delete or re-configure the options set here, just remove the sidebar link to ‘Post Control Core’.

    Be careful though – when the plugin is upgraded in the future you will have to re-apply the hack (and it will probably be at a different line number).

  • Duna · April 30, 2010 at 10:30 am

    Is it possible to remove options, created by plugins, such as all in one seo or simple tag.
    Look for pic:

  • Admin comment by Jonny · April 30, 2010 at 2:45 pm

    Hi Duma, if you know PHP you could probably hack this into the plugin – but at the moment Post Control only controls the core WordPress functions, not third party plugins like all-in-one SEO… it would be impossible to cover all third-party plugins that insert boxes into the admin!

    However, I am looking into upgrading this plugin soon, so may consider something like this when I have the time.

  • Duna · April 30, 2010 at 10:03 pm

    I know some PHP, but could you give me a short help about where and for that i should look? It will save me much time.

  • Sol · May 1, 2010 at 12:57 am

    Hello – great plugin and just what I’ve been searching for, thanks.

    I use “Page Links To” plugin. How could I add this so it is displayed as an option in the Post Control screen ?

    Ready to donate to you…

    Thanks in advance.

  • Admin comment by Jonny · May 9, 2010 at 8:52 pm

    Hi Sol – a-lot of different plugins add controls to the admin ‘write’ pages in WordPress and I would never be able to keep up with them all!

    However, I have been working on a new version of Post Control that may include this sort of functionality – effectively giving role control to any plugin that adds controls like the one you mention – but it’s tricky and Im very busy with my proper commercial work so will bot have this completed for another few weeks yet sadly, sorry!

  • Martha · May 12, 2010 at 10:15 pm

    Maybe I’m confused (or stupid!), but I hoped this would allow me to hide the “Posted on May 6, 2010 by …”

    Or is this only to hide what editors admins etc. see when they post?

    I have version 2.12.

  • WORDPRESS: MY RESEARCH « Betarelease Design Team · May 14, 2010 at 9:29 am

    [...] WP-CMS Post Control [...]

  • Admin comment by Jonny · May 14, 2010 at 11:13 pm

    Hi Martha – this plugin is for changing the editor controls in the admin screens – it sounds like what you are talking about is in your template code. Have a look in your template files – if you make a backup first you can always go back if you break something:)

  • Jason · May 19, 2010 at 9:12 pm

    I have a directory set up where admin has the ability to edit excerpts of posts but they are hidden from the posts owner (authors). When the author revises the post and updates it… it is updated without the excerpt. Is there a way to just hide the excerpt and not exclude it from the post entirely? or another solution?
    Thanks for the awesome plugin regardless. :)

  • Admin comment by Jonny · May 24, 2010 at 9:53 am

    Hi Jason – thanks for the feedback! Are you using seperate scripting/plugin to hide from post owner, in addition to using my Post Control plugin?

  • .wired · June 4, 2010 at 6:21 pm

    Hi, this sounds absolutely awesome! There’s just one little thing I would love to know about: Is there also the possibility to make a field required? I really need something like your plugin just with this “required” thing. Also excuse me for my bad english ;-)

    greetings, .wired

  • sonny · June 11, 2010 at 9:07 am

    First, thank you very much Jonny for the plugin. I faced a problem right after I activated your plugin and tried to save post control options, to see this show up:

    Warning: Invalid argument supplied for foreach() in /home2/webpres4/public_html/wp-content/plugins/wp-cms-post-control/wp-cms-post-control.php on line 184

    Is there a way to fix this and what may be the cause of this? Thank you very much for your help. Sonny

  • Admin comment by Jonny · June 12, 2010 at 11:19 pm

    Hi Wired – this plugin won’t do ‘required’ fields – to do that you need to hook into the action before a post is published – it’s certainly possible!

  • Admin comment by Jonny · June 12, 2010 at 11:23 pm

    Sonny – ah, little bug when no options saved or selected. Thanks for the feedback, this has now been fixed in v2.2 and above now available for download.

    As a little bonus (and because I needed it for a couple of clients!) v2.2 has a new feature allowing you to limit the number of revisions saved – enjoy!

Leave a Reply