Em WP_Query (), há um argumento 'post__not_in' em que você pode excluir IDs de postagem específicos.
Você criaria um novo WP_Query dentro do seu search.php e usaria o $ query_args atual, e depois adicionaria o seu 'post__not_in'.
Se você quiser torná-lo mais dinâmico, também poderá criar em algumas post meta onde você poderá fazer uma meta query e excluir tudo que tiver "exclude" marcado. (procure 'register_meta_box_cb' em register_post_type ).
Por exemplo,
add_action('pre_get_posts','wpse67626_exclude_posts_from_search');
function wpse67626_exclude_posts_from_search( $query ){
if( $query->is_main_query() && is_search() ){
//Exclude posts by ID
$post_ids = array(7,19,21);
$query->set('post__not_in', $post_ids);
}
}
register_post_type