Why should we use the name attribute with the value "s" in the creation of the search form?

admin2025-06-04  12

I was doing a search form when I realized that if I change the value of the name attribute to something other than "s", the search.php page will not be displayed.

How can I change and still display the search.php page?

NOTE: I used the translator if there are any errors. I ask you to please edit for me and sorry for my ignorance

I was doing a search form when I realized that if I change the value of the name attribute to something other than "s", the search.php page will not be displayed.

How can I change and still display the search.php page?

NOTE: I used the translator if there are any errors. I ask you to please edit for me and sorry for my ignorance

Share Improve this question edited Jan 2, 2019 at 15:53 RiddleMeThis 3,8078 gold badges22 silver badges30 bronze badges asked Jan 2, 2019 at 11:57 ProgramadorWProgramadorW 1 1
  • 1 Welcome to the site. The s input name in the form, will become a GET parameter, if the form's method is set to GET and WordPress will treat it as a search query. I wonder why you need to change it? – birgire Commented Jan 2, 2019 at 12:36
Add a comment  | 

1 Answer 1

Reset to default 1

The name attribute of the input element becomes the query parameter in the URL when the form is submitted. So for an input with the name s the URL will look like:

http://example/?s=my+search+query

WordPress is built so that the s parameter indicates a search, so it then queries based on that value and loads the search.php template.

There isn't a way to change the name of the query parameter used for search per se, but you could use an early hook to manually set the value of $_GET['s'] to the value of your own parameter name.

For example, if you wanted to use q as the input name:

function wpse_324429_search_parameter() {
    if ( isset( $_GET['q'] ) ) {
        $_GET['s'] = $_GET['q'];
    }
}
add_action( 'init', 'wpse_324429_search_parameter' );

Manually setting a value in $_GET feels wrong to me, but I can't see why it wouldn't work.

转载请注明原文地址:http://conceptsofalgorithm.com/Algorithm/1749050432a315933.html

最新回复(0)