I'd like to use query_posts() to show only posts from editors and administrators on my home page so that normal authors can post on their own pages, but not affect the home page.

Edit :

Thanks for the quick reply, I'm a bit of a novice when it comes to php, do you think you could give me the code I require? I'm currently using this, but getting no posts returned despite having several posts by an administrator:

$wp_user_search = new WP_User_Query( array( 'role' => 'administrator' ) );
$admins = $wp_user_search->get_results();
$args = implode(',', $admins);
  • This is exact opposite of this question Hide posts from users with a specific role check out my answer there and if it fits I will probably close this as duplicate.
    – Rarst
    Commented Jul 13, 2011 at 18:56
  • @Rarst: the answer to this question is exactly the same minus the minus sign ( - ) in the query parameters but i guess its still something a lot of people would look for and not the other way around.
    – Bainternet
    Commented Jul 13, 2011 at 19:14

1 Answer 1


Code you are after:

$wp_user_search = new WP_User_Query( array( 'role' => 'administrator' ) );
$admins = $wp_user_search->get_results();
$admin_ids = array();
foreach($admins as $admin) {
    $admin_ids[] = $admin->ID;
$args = implode(',', $admin_ids);

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.