Welcome to Dagon Design. In addition to free scripts, WordPress plugins, and articles, we offer a variety of services including custom theme design, plugin creation, and PHP scripting. Contact me for more information.

Updated Saturday, February 21st, 2009 at 1:13pm

WordPress Search Form without Search Button

This article explains a method for displaying a WordPress search form without a search button. The user simply enters they text they would like to search for, and hits enter. While this is easy to do with the use of a hidden submit button, this method also allows for the use of a default message in the search box (such as “Enter your search”), which keeps you from having to display a label next to the form explaining what it is for. This default message automatically clears when the user clicks to start typing, and puts itself back if the user clicks away. This allows you to have a search form that looks nice and clean, and is still just as functional.

The code

(extra newlines have been added to the code to make it fit the page properly)

<?php $search_text = "Search"; ?> 
<form method="get" id="searchform"  
action="<?php bloginfo('home'); ?>/"> 
<input type="text" value="<?php echo $search_text; ?>"  
name="s" id="s"  
onblur="if (this.value == '')  
{this.value = '<?php echo $search_text; ?>';}"  
onfocus="if (this.value == '<?php echo $search_text; ?>')  
{this.value = '';}" /> 
<input type="hidden" id="searchsubmit" /> 
</form>

Usage

Most WordPress themes have a file called searchform.php which contains the code that generates the search form. All you generally have to do is replace the existing code with the code above.

For themes without the searchform.php file, you can place this code directly into your theme files, wherever you would like the search to go.

Changing the default text

To change the default text of the form, you just have to configure the $search_text variable in the first line of the code.

Styling the form

Using CSS, it is easy to adjust your form. For example, if you want to define the exact width of the search field, you could wrap a div around it like this:

<div class="search-form">
(form code goes here)
</div>

And then in your CSS file, add the following:

.search-form input {
  width: 150px;
}

Example

You can see an example of this method in the left sidebar of this website.

If you have found this page useful, please consider donating. Thanks!

Pages: [2] 1 » Show All

  1. I was having trouble and getting extremely frustrated making the search button consistent across all browsers. I stumbled upon this entry and found it very handy. Thanks a bunch.

  2. 26
    MadMax

    Hello!

    Thank you for sharing this great Code!
    Very lean solution!
    One thing that might help other users:
    My theme had no searchform.php, so I just saved your code as searchform.php, put it into my theme folder and it works greatly!!!
    I´m not sure if this works for older WP-versions, though.
    I think I read somewhere that it´s a new feature of WP 2.7.1 that automatically searches for a file named searchform.php, but, as I said, I´m not sure if that´s true.

    Thanks to you again, greetings, MadMax

  3. Hi.. great bit… thanks for sharing! I wanted to second John’s request for a way to have this validate.

  4. This code modification has been tested in the latest release of WordPress (2.7.1)

  5. This works fine, and seems like a great solution.
    Only when I try to validate my site, W3C throws up a couple of problems which I can’t seem to fix. Is it possible to reformat the code so that it validates?

  6. Hi i have a question, would appreciate a lot if someone could help me in this….

    I’m using WP as CMS and works fine everything BUT, when calling the search function having a little trouble, that is: My site is a multi language site, when searching a item, it still bring me to the default language. i have dutch and english, the default language is dutch, so when someone switch to english and want to search for something the result page shows in dutch, i need to add a something like : if( isset($_GET['lang']) ){echo ‘&lang=’.$_GET[lang]; }

  7. Thanks for this great peice of code! combined with advanced search plugin…this solution rocks my clients site.

  8. Hi; and thanks for the script. It’s works but my theme is very old?
    I see this when I make a search:

    Fatal error: Call to undefined function get_search_form() in /home/extran5/public_html/legales/wp-content/themes/default/sidebar.php on line 12

    Do you have any idea to fix this?

  9. 19
    matteo

    Hi, I just added the code to my blog but the search field it just comes out way too big. I tried to change the height value in the CSS under the width value but it didn`t change anything.

    Now the code it look like this:
    .search-form input {
    width: 150px;
    height: 30px;
    }

    What else can I do?

  10. is there a way to add different blogs in the php script via a drop down menu or something?

    i would like to link three or more WP blogs on same domain (different subdomains) in one search form in wordpress

    if anyone knows a way to do this please drop me a line

    thanks

  11. 17
    yogesh

    please tell me
    what is the coding of searching the particular product among 100 products in php?? i.e of search button

  12. thanks for this great code ; and for the way you help loosers like me to implement it on their blog without any pain.

    thanks !

Pages: [2] 1 » Show All

Leave a Comment

Before you comment: If you are having an issue with a script, please make sure you have read the entire article. Also, please read through the comments because most common issues have already been discussed many times. Thanks.


Be sure to wrap all code in <code></code> tags.