I would like to prevent users from one specific role from publishing directly their articles. Only administrators should be able to approve these. The only choice they would ever have is to put their articles as pending or draft. Any other roles may publish if they want. Is there a way to do so without any plugin and without having to dig too deep into the code?

Thank you

1 Answer 1


The following code can go in the functions.php file of your theme. However, this kind of operation should not really be bound to a theme. Changing themes would allow the users with your specific role to publish again. Therefore, just put the code in simple plugin.

 * Plugin Name: My specific roles and capabilities
 * Plugin URI:  http://wordpress.stackexchange.com/questions/71841/pending-status-by-default-for-a-specific-role/71843

$role = get_role('specific-role'); // Pick your role

if ( ! empty($role))

See codex: get_role() and publish_posts.

  • Thank you, it's perfect and I will accept the answer. One thing though: I keep having the "publish" button. How can I have a button which reflects the "pending" status instead? Nov 7, 2012 at 14:41
  • Did you change "specific-role" with your actual role? The submit button should say "Submit for Review" now.
    – Geert
    Nov 7, 2012 at 14:45
  • Actually it's ok now. Yes I did and it worked but for some reason I had to reinit my browser in order for the button to change the status. Don't get it as it's a server thing but it worked. Thank you very much as I thought I would have to spend the night on it. Nov 7, 2012 at 14:54

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.