我需要找到一些方法来允许前端过滤查询循环块的结果。实现这一点的理想方法是使用URL参数来修改查询循环结果,类似于搜索块。有没有一种简单的方法可以通过查询循环块的变体来实现这一点?或者我必须为这个目的做一些完全定制的东西?我喜欢使用尽可能多的开箱即用的代码。
htrmnn0y1#
您可以通过创建指定查询参数的变体来阻止extend the Query Loop。下面是查询循环的设置搜索参数的简单块变化:
JS
registerBlockVariation( 'core/query', { name: 'my-plugin/list-keyword', icon: 'smiley', attributes: { query: { search: 'keyword', // equivalent to /s?=keyword /* and optionally any other query settings.. */ }, }, ... } );
然后,您可以将您的查询块变体添加到任何帖子/页面/模板。对于前端,如果你正在编辑你的主题的搜索模板,我会使用按钮块来提供更改搜索参数的链接,不需要块变化,例如:
网站编辑器>模板>搜索x1c 0d1x
根据您的最终目标,有关扩展查询的文档可能也很有用。
j7dteeu82#
这个问题在www.example.com上得到了解决wordpress.stackexchange.com:为了避免修改主查询,您可以考虑使用PHP添加一个自定义查询变量,并使用?qls=foo代替?s=foo。要以相应的查询循环为目标,请将text:query-loop-search添加到编辑器中查询循环块的搜索框中。然后,我们可以获取自定义查询变量?qls=foo的值,并使用PHP将其设置为目标查询的搜索变量。来源:https://wordpress.stackexchange.com/questions/407888/how-to-filter-query-loop-block-with-a-search-string-from-the-query-parameters
?qls=foo
?s=foo
2条答案
按热度按时间htrmnn0y1#
您可以通过创建指定查询参数的变体来阻止extend the Query Loop。下面是查询循环的设置搜索参数的简单块变化:
JS
然后,您可以将您的查询块变体添加到任何帖子/页面/模板。
对于前端,如果你正在编辑你的主题的搜索模板,我会使用按钮块来提供更改搜索参数的链接,不需要块变化,例如:
网站编辑器>模板>搜索x1c 0d1x
根据您的最终目标,有关扩展查询的文档可能也很有用。
j7dteeu82#
这个问题在www.example.com上得到了解决wordpress.stackexchange.com:
为了避免修改主查询,您可以考虑使用PHP添加一个自定义查询变量,并使用
?qls=foo
代替?s=foo
。要以相应的查询循环为目标,请将text:query-loop-search添加到编辑器中查询循环块的搜索框中。
然后,我们可以获取自定义查询变量
?qls=foo
的值,并使用PHP将其设置为目标查询的搜索变量。来源:https://wordpress.stackexchange.com/questions/407888/how-to-filter-query-loop-block-with-a-search-string-from-the-query-parameters