Home / Archive / MemberPress: Exclude Protected Posts from Search Results
Duplicate Snippet

Embed Snippet on Your Site

MemberPress: Exclude Protected Posts from Search Results

Removes any posts from the search results that the current user (or guest) does not have access to.

Code Preview
php
<?php
function maybe_exclude_protected_posts($query) {
  if(!$query->is_admin && $query->is_search && $query->is_main_query()) {
    $posts_to_exclude = array();
    $posts = get_posts(array(
      'post_type' => get_post_types(),
      'numberposts' => -1
    ));
    foreach($posts as $post) {
      if(MeprRule::is_locked($post)) {
        $posts_to_exclude[] = $post->ID;
      }
    }
    if(!empty($posts_to_exclude)) {
      $query->set('post__not_in', $posts_to_exclude);
    }
  }
}
add_action('pre_get_posts', 'maybe_exclude_protected_posts');

Comments

Add a Comment