可湿性粉剂搜索中的“姓名”有哪些可用选项?

时间:2020-01-15 作者:Iisrael

我正在尝试查找的可用值列表name 在搜索中筛选结果。到目前为止我发现name="s" 是默认值name="cat" 用于类别和name="post_type" 用于帖子类型。我对WP比较陌生,我发现很难知道如何找到这样的细节。

你能告诉我这些选项是从哪里来的吗?

其他资源也值得赞赏。

1 个回复
最合适的回答,由SO网友:Tom J Nowell 整理而成

有两个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存档中。

关于Codex的最后一点,我还要指出,Codex是旧的,被位于https://developer.wordpress.org/ 许多年前。该网站上的手册和代码参考要优越得多。