The get_search_form WordPress PHP filter allows you to modify the HTML output of the search form.
Usage
add_filter('get_search_form', 'your_custom_function', 10, 2); function your_custom_function($form, $args) { // your custom code here return $form; }
Parameters
$form
(string) – The search form HTML output.$args
(array) – The array of arguments for building the search form. Seeget_search_form()
for information on accepted arguments.
More information
See WordPress Developer Resources: get_search_form
Examples
Change the search form placeholder text
This example changes the search form input field’s placeholder text to “Search my site…”:
add_filter('get_search_form', 'change_search_placeholder', 10, 2); function change_search_placeholder($form, $args) { $form = str_replace('placeholder="Search"', 'placeholder="Search my site..."', $form); return $form; }
Add a CSS class to the search form
This example adds a custom CSS class to the search form element:
add_filter('get_search_form', 'add_custom_search_class', 10, 2); function add_custom_search_class($form, $args) { $form = str_replace('class="search-form"', 'class="search-form my-custom-search"', $form); return $form; }
Modify the search form submit button text
This example changes the search form submit button text to “Find”:
add_filter('get_search_form', 'change_search_submit_text', 10, 2); function change_search_submit_text($form, $args) { $form = str_replace('value="Search"', 'value="Find"', $form); return $form; }
Wrap the search form in a custom HTML element
This example wraps the search form in a custom <div>
element with a specific class:
add_filter('get_search_form', 'wrap_search_form', 10, 2); function wrap_search_form($form, $args) { $form = '<div class="custom-search-wrapper">' . $form . '</div>'; return $form; }
Remove the search form label
This example removes the label element from the search form for a cleaner appearance:
add_filter('get_search_form', 'remove_search_form_label', 10, 2); function remove_search_form_label($form, $args) { $form = preg_replace('/<label.*?>.*?<\/label>/', '', $form); return $form; }