Tectonic Posted May 18, 2020 Share Posted May 18, 2020 Hello all! So glad I found this forum. I would appreciate some assistance please. I'm working on a filter for a Custom Post Type . I need it to filter the list depending on the user's role. The way this should work is the following... * Users in roles "formusers1" and "formusers2" can post. Users can only see their own posts. * Users in role "formchecker1" can see all posts assigned role "formusers1' and can approve each post. * Users in role "formchecker2" can see all posts assigned role "formusers2' and can approve each post. * Users in roles "formsupervisor" and "administrator" can see everyone's posts. So far I can filter by roles "formusers1" and "formusers2" using `$query->set('author', $current_user->ID);` . However, when try to filter the list for role "formchecker1" I see posts from all roles. What am I doing wrong? Here's the rest of the code. Thanks for checking out! ``` add_action('pre_get_posts', 'filter_posts_list'); function filter_posts_list($query) { //GLOBAL VARIABLES global $pagenow, $typenow; //MY VARIABLES global $current_user; get_currentuserinfo(); //FILTERING if (current_user_can('formchecker1') && ('edit.php' == $pagenow) && $typenow == 'mycustomcpt' ) { $query->set('author', 'formusers1'); } if (current_user_can('formchecker2') && ('edit.php' == $pagenow) && $typenow == 'mycustomcpt' ) { $query->set('author', 'formusers2'); } if ((current_user_can('formusers1') || current_user_can('formusers2')) && ('edit.php' == $pagenow) && $typenow == 'mycustomcpt') { $query->set('author', $current_user->ID); } } ``` Quote Link to comment https://forums.phpfreaks.com/topic/310811-filtering-a-wordpress-admin-post-list-by-role/ Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.