Home / Archive / MemberPress: Hide Protected Posts on Archive Page
Duplicate Snippet

Embed Snippet on Your Site

MemberPress: Hide Protected Posts on Archive Page

Hides posts that the current user (or guest) does not have access to from archive pages.

Code Preview
php
<?php
function mepr_exclude_protected_posts_from_archive( $query ) {
  if( !$query->is_admin && $query->is_archive() && $query->is_main_query() ) {
    $posts_to_exclude = array();
    $posts = get_posts( array( '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', 'mepr_exclude_protected_posts_from_archive' );

Comments

Add a Comment