$conf, $runtime; function_exists('chdir') AND chdir(APP_PATH); $r = 'mysql' == $conf['cache']['type'] ? website_set('runtime', $runtime) : cache_set('runtime', $runtime); } function runtime_truncate() { global $conf; 'mysql' == $conf['cache']['type'] ? website_set('runtime', '') : cache_delete('runtime'); } register_shutdown_function('runtime_save'); ?>Why should we use the name attribute with the value "s" in the creation of the search form?|Programmer puzzle solving
最新消息:Welcome to the puzzle paradise for programmers! Here, a well-designed puzzle awaits you. From code logic puzzles to algorithmic challenges, each level is closely centered on the programmer's expertise and skills. Whether you're a novice programmer or an experienced tech guru, you'll find your own challenges on this site. In the process of solving puzzles, you can not only exercise your thinking skills, but also deepen your understanding and application of programming knowledge. Come to start this puzzle journey full of wisdom and challenges, with many programmers to compete with each other and show your programming wisdom! Translated with DeepL.com (free version)

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

matteradmin9PV0评论

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.

Post a comment

comment list (0)

  1. No comments so far