Remove Node Search
Fri, Oct 5, 2012
1-minute read
Quickly one.
Today I was tasked to remove node from search results on our side.
It looks like easy but it is not if you are using basic Drupal 7 search engine.
Options are:
- remove items from search tables (but they will be re-populated with next cron run)
- build module with query alter hook (to much work for simple thing like this)
- alter search-result.tpl.php template.
And 3rd one is one that I used. Since site already have inside custom templates folder search-result.tpl.php
I just added at the top:
if ($result["node"]->nid == <excluded nid>) {
// search result alter
}
else {
// everything else
}
and it is done.
Note to myself: next time use Search API and assign views to the search. Then I use Views to override search results (including all its features: filtering, sorting, etc.
Create a custom field such as “Exclude this node from search,” and set the filter to exclude nodes with that field or/and certain content types.