有两个name
\'s:
在name
查询变量name
查询变量的输入标记中的属性name
表示后段塞。
例如,我的网站上有一篇博文:
https://tomjn.com/2018/07/23/deployment-and-wordpress/
它有以下职位名称:
deployment-and-wordpress
我还可以访问以下URL:
https://tomjn.com/?name=deployment-and-wordpress
我也可以通过
WP_Query
在使用此查询的代码中:
$query= = new WP_Query([
\'name\' => \'deployment-and-wordpress\'
]);
Thename="..."
输入上的属性name
表单输入中的参数,这些是查询变量,传递给WP_Query
. 这些是内部白名单,但您可以参考WP\\U查询文档以获取完整列表和解释:
https://developer.wordpress.org/reference/classes/wp_query/
注意,这些文档假设您将编写PHP代码,您最好使用
pre_get_posts
查询以在某些情况下为自己提供更多选项。
将其他值用于name
输入字段不会对主查询产生任何影响,除非您编写代码读入并自己进行更改。
请记住,如果您的主题模板丢弃了主帖子查询并创建了自己的全新帖子查询,那么这将不起作用。出于多种原因,这将是一种不好的做法,我建议使用pre_get_posts
筛选以更改WP在PHP中从数据库中获取的内容。
当WordPress看到一个漂亮的URL时,请注意永久链接和漂亮的URL,例如:
https://tomjn.com/2018/07/23/deployment-and-wordpress/
它使用重写规则系统将其转换为:
https://tomjn.com/index.php?name=deployment-and-wordpress
然后,一旦完成,它将处理结果,将作为查询变量的参数传递到
WP_Query
, e、 g。
$wp_query = WP_Query([
\'name\' => get_query_var( \'name\' ),
]);
// etc
这就是为什么通过表单输入或URL添加参数可以更改WordPress检索的帖子,例如,您可以添加
?s=test
到类别存档的末尾,只搜索该类别,或添加
input
更改参数,不仅在搜索中,而且在任何WordPress post存档中。