php WordPress Query Loop阻止URL参数过滤

pbpqsu0x  于 2023-06-20  发布在  PHP
关注(0)|答案(2)|浏览(124)

我需要找到一些方法来允许前端过滤查询循环块的结果。实现这一点的理想方法是使用URL参数来修改查询循环结果,类似于搜索块。
有没有一种简单的方法可以通过查询循环块的变体来实现这一点?或者我必须为这个目的做一些完全定制的东西?我喜欢使用尽可能多的开箱即用的代码。

htrmnn0y

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

根据您的最终目标,有关扩展查询的文档可能也很有用。

j7dteeu8

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

相关问题