Home / admin / Restricting authors to view only posts they created
  • How to Restricting authors to view only posts they created

    restricting-authors-to-view-only-posts-they-created-in-admin-panel

    Adding this snippet to the functions.php of your wordpress theme will restrict authors to view only posts they created within the admin panel.

    ( click code to copy )

    wordpress snippet : PHP

    <>
    function posts_for_current_author($query) {
            global $pagenow;
        if( 'edit.php' != $pagenow || !$query->is_admin )
            return $query;
        if( !current_user_can( 'manage_options' ) ) {
           global $user_ID;
           $query->set('author', $user_ID );
         }
         return $query;
    }
    add_filter('pre_get_posts', 'posts_for_current_author');
    

    ( WordPress codex functions, hooks, in this snippet. )

    query, get_post, get_posts, current_user_can, user_can, add_filter, is_admin,
  • Thanks for this 😉 

    Does it work for all user classes (Authors, Editors etc? ) 

    • This snippet will only display the posts create by that user should work for everyone. So if you have a user that created no posts they should see nothing within the posts admin view.

  • Craig

    Great snippet, thanks. Do you know a way to restrict visibility of the sub menu headings by user ID. i.e. the author of a post that is of custom_post_type A, only sees the sub menu for custom_post_type A while the other custom_post_type sub menus are hidden?

  • Chad

    This worked as described. But, when I removed it from functions.php I couldn’t see any posts when logged in as anything other than an admin. ???

    • Chad

      Sorry. Looks like it may have been an issue with something else. Seems to work OK now.

      • Hi Chad  Cool glad to see you got things working.

  • Hi this is a great snippet! How can I change the code to have this effect for the user role “Contributors”?

  • Chad Reno

    Ernest, I would venture to guess you would replace:

    if( !current_user_can( ‘manage_options’ ) ) {

    with:

    if( !current_user_can( ‘level_1’ ) ) {

    Anyone with a role higher than Contributor would be able to see all posts.

  • Britt

    Using WP 3.3.1 and this is not working. Is their an update on the code? Thanks.

  • Also, does this work for only posts or also pages?

  • Thanks a lot Kevin!!

  • Uldis Zalcmanis

    is there any way to restrict author of comment to be the only who can see the comment? I know it sounds like a nonsense – don`t ask :) I really need it! Thanks in advance.

  • Srinevasan.D

    can you help me with the code for Restricting authors to view only Category they created.
    Thanks