Skip to main contentSkip to footer

Private Groups is a plugin that makes bbPress forum groups private. Relevanssi, however, doesn’t understand that privacy and will show those groups in the search results.

Relevanssi has means to support this, however, with the help of the relevanssi_post_ok filter. Here’s some code from Mark Wass that makes the private forum posts private in search. Add this code to the theme functions.php file.

/**
 * Filter search results so that private forum posts are not displayed 
 * to members who do not belong to the particular private group. 
 */
add_filter( 'relevanssi_post_ok', 'rlv_filter_private_forum_posts', 11, 2 );

function rlv_filter_private_forum_posts( $post_ok, $post_id ) {
    //Default user can view results 
    $user_can_view = true;

    $post = get_post( $post_id );

    //Get the post type 
    $post_type = $post->post_type;

    //Get the forum id the post belongs to (Only if it's a topic or reply) 
    if ( 'reply' === $post_type || 'topic' === $post_type ) {
        $forum_id = private_groups_get_forum_id_from_post_id( $post_id, $post_type );
    }

    //Check if current user can view the forum that the post belongs to. 
    if ( false === private_groups_can_user_view_post_id( $forum_id ) ) {
        $user_can_view = false;
    }

    //Filter the search results for forum topics or replies based on the users forum permission. 
    if ( 'reply' === $post_type || 'topic' === $post_type ) {
        if ( $user_can_view ) {
            $post_ok = true;
        } else {
            $post_ok = false;
        }
    }

    return $post_ok; 
}

Your account

Not logged in. Log in to see your license details.

Search

Popular Resources

Translation and multilingual plugins

Different translation plugins use different methods for storing the translations, and these methods have varying compatibility with how Relevanssi works with the posts. Best compatibility Polylang. Relevanssi has good built-in support for Polylang. This is the best translation tool that causes the least trouble. WPML. Good built-in support, almost as…

Using AND and NOT for Boolean operators

…$args ) { $args[‘q’] = str_replace( ‘ and ‘, ‘ +’, $args[‘q’] ); $args[‘q’] = str_replace( ‘ not ‘, ‘ -‘, $args[‘q’] ); return $args; } This function (on the relevanssi_search_filters hook) looks at the search query and replaces the word “AND” with a + sign and the word “NOT”…

Related Posts:

Comment Section:

Leave a Reply

Your email address will not be published. Required fields are marked *

Fill out this field
Fill out this field
Please enter a valid email address.
You need to agree with the terms to proceed