{ claus.conrad }

Removing "Search this site" from the search block in Drupal 6

πŸ“… Jan 25, 2009
βŒ› 1 minute

Recently I wanted to remove the label "Search this site:" from Drupal 6's search block, preferably without resorting to any hacks such as parsing a text string for "Search this site:" (which could break whenever a new minor Drupal release gets out) or hiding the label in CSS (while this is not the worst solution, I always prefer not to output any unnecessary markup). Placing the following function in _template.php_ seems to do the trick in a clean way.

function phptemplate_preprocess_search_block_form(&$variables) {
  unset($variables['form']['search_block_form']['#title']);
  unset($variables['form']['search_block_form']['#printed']);
  $variables['search']['search_block_form'] = drupal_render($variables['form']['search_block_form']);
  $variables['search_form'] = implode($variables['search']);
}

The variable $variables['form']['search_block_form']['#title'] contains the string Search this site: or its translation, but gets rendered as a label - fortunately simply unsetting it removes the label altogether! I am not sure why $variables['form']['search_block_form']['#printed'] also needs to be unset, but if that line is omitted, the text box (input field) won’t show up.