为什么我们要在创建搜索表单时使用值为“s”的name属性?

时间:2019-01-02 作者:ProgramadorW

当我在做一个搜索表单时,我意识到如果我将name属性的值更改为“s”以外的值,那么搜索就会失败。不会显示php页面。

如何更改并仍然显示搜索。php页面?

NOTE: 如果有任何错误,我会使用翻译。我请你帮我编辑一下,很抱歉我的无知

1 个回复
SO网友:Jacob Peattie

这个name 提交表单时,输入元素的属性将成为URL中的查询参数。所以对于名称为s URL如下所示:

http://example.com/?s=my+search+query
WordPress的构建使s 参数表示一个搜索,因此它会根据该值进行查询并加载搜索。php模板。

无法更改用于搜索本身的查询参数的名称,但可以使用早期挂钩手动设置$_GET[\'s\'] 到您自己的参数名称的值。

例如,如果您想使用q 作为输入名称:

function wpse_324429_search_parameter() {
    if ( isset( $_GET[\'q\'] ) ) {
        $_GET[\'s\'] = $_GET[\'q\'];
    }
}
add_action( \'init\', \'wpse_324429_search_parameter\' );
在中手动设置值$_GET <我觉得不对,但我不明白为什么它不起作用。

相关推荐

使用WP-CLI和/或Search-Replace-DB迁移多站点

我有一个Wordpress 5.5/PHP7.3多站点生产站点安装,我正在尝试将其迁移到本地LAMP开发环境,以便进行编辑。The Problem: 就是在运行Search Replace DB脚本或WP Cli多站点迁移脚本时。一个子网站完美地加载到新的开发域上,同时主网站和具有相同主题的子网站成功加载,但主题似乎已中断(基于visual composer)。可能还有其他非视觉错误。我已经下载了所有文件,正确配置了LAMP virtualhost,并通过PHPMYADMIN将数据库导入到我的本地LAMP