SearchWP Documentation

View the installation guide, browse the Knowledge Base, find out about SearchWP’s many hooks

Limiting Search Results to the Active bbPress Forum

Some bbPress forum installs are huge. Perhaps you’d like to help out your visitors by limiting the on-page search to the Forum currently being viewed. We can customize the output of get_search_form() (which includes the WordPress Search (not bbPress) Widget) to only consider the bbPress Forum currently on display when searching:

All hooks should be added to your custom SearchWP Customizations Plugin.

<?php
// Customize native WordPress search form to include current bbPress Forum ID if applicable.
// @link https://searchwp.com/documentation/knowledge-base/limiting-search-results-bbpress/
add_filter( 'get_search_form', function( $markup ) {
if ( ! function_exists( 'bbp_get_forum_id' ) ) {
return $markup;
}
$forum_id = isset( $_REQUEST['swpforumid'] ) ? absint( $_REQUEST['swpforumid'] ) : bbp_get_forum_id();
if ( empty( $forum_id ) ) {
return $markup;
}
return str_replace( '</form>',
'<input type="hidden" name="swpforumid" value="' . esc_attr( $forum_id ) . '" /></form>',
$markup
);
} );
// Limit SearchWP results to the current bbPress Forum when applicable.
add_filter( 'searchwp\query\mods', function( $mods, $query ) {
if ( ! isset( $_REQUEST['swpforumid'] ) ) {
return $mods;
}
$mod = new \SearchWP\Mod(
\SearchWP\Utils::get_post_type_source_name( 'post' )
);
$mod->set_where( [ [
'column' => 'id',
'value' => absint( $_REQUEST['swpforumid'] ),
'compare' => '=',
'type' => 'NUMERIC',
] ] );
$mods[] = $mod;
return $mods;
}, 30, 2 );

Create a Better WordPress Search Experience Today

Never lose visitors to unhelpful search results again. SearchWP makes creating your own smart WordPress search fast and easy.

Get SearchWP Now
Multiple Search Engines Icon