Return to Posts

Hide Specific Pages from WordPress Search Results

A situation that comes up often is wanting to hide certain pages from WordPress search results. This can be achieved pretty easily using the pre_get_posts hook in your functions.php file. Just pass in an array of page IDs to the 'post__not_in' WP_Query parameter (note the double underscores) and you’re good to go.

<?php
add_filter('pre_get_posts','your_custom_search_filter');
function your_custom_search_filter($query) {
if (!is_admin() && $query->is_search) {
$exclude_ids = array(1,2,3); //page ids you want to exclude
$query->set('post__not_in', $exclude_ids);
}
return $query;
} ?>

view raw
functions.php
hosted with ❤ by GitHub

April 26, 2015 WordPress Development