En WP_Query () hay un argumento 'post__not_in' en el que puede excluir ID de publicaciones específicas.
Crearía una nueva WP_Query dentro de su search.php y usaría el $ query_args actual, luego agregaría su 'post__not_in'.
Si quisiera hacerlo más dinámico, también podría crear algunas meta meta donde podría hacer una meta consulta y excluir todo lo que haya marcado "excluir". (busque 'register_meta_box_cb' en register_post_type ).
Por ejemplo,
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