• The plugin function blog_search_filter causes problems when using a WP_Query that contains a search term. The filter overrides the post_type field with any even when a WordPress search wasn’t made. This means searches that are narrowed to a custom post type will include everything.

    Quick example (when the plugin is enabled):

    
    // Create a query to find pages.
    $my_query = new WP_Query(array(
        'post_type' => 'page',
        's'         => 'search term',
    ) );
    
    // This will echo "any", but it should be "page".
    echo $my_query->query_vars['post_type'];
    

    One potential fix is to only override the post type when it’s set in the url:

    
    // Replace lines 78-81 of "osd-blog-search-widget.php" with
    // the following:
    if ( $post_type ) {
        $query->set( 'post_type', $post_type );
    }			
    

    An alternative would be to include an additional hidden field on the form (like osd_blog_search or similar) and then only change the post type when that is set to true.

    Thank you!

  • The topic ‘Plugin can break queries that use custom post types’ is closed to new replies.