前端动态过滤WP_QUERY

时间:2016-08-04 作者:sevenspirits

我有一个自定义帖子类型(CPT)的归档页面,我试图在该页面上做两件事:

显示与CPT相关的分类中的术语列表,

使用这些术语动态更改将显示在同一页面上的wp\\U查询。

例如,我的自定义帖子类型是“Read”。我有一个与之相关的“阅读”自定义分类法,还有几个术语,如“系列”、“消息”、“特殊服务”等。

我想使用列出的术语更新循环中显示的内容(即,如果有人单击“系列”,循环将仅显示“系列”中的帖子,如果他们单击“消息”,循环将更新并仅显示“消息”中的帖子等)。

我已使用“get\\u terms”功能成功列出了术语。然而,我不知道如何使这些术语动态更改循环中显示的内容(我正在使用一个新的wp\\u查询)。

如何允许用户选择的术语动态(通过ajax?)是否更新正在显示的查询?

我很感激你能给我的任何帮助!

1 个回复
SO网友:Andy Macaulay-Brook

这是我最近在一个网站上所做的,应该很容易适应你的情况。我在这个网站上使用jQuery进行了很多事情,所以我依赖它。

虽然WP有一些很好的AJAX处理,但在本例中,只使用jQuery的AJAX load()方法更简单。如果当前页面包含元素div#loaded-content-area 你想用另一个网页的div#content-to-load 然后只需运行jQuery:

$("div#loaded-content-area")
.load("http://www.example.org/page-of-data/ #content-to-load");
因此,为了解决您的问题,我会确保在主题中标记分类术语模板中的关键内容ID="content-to-load" (当然,也可以是任何适合你的身份证)。

在显示的页面中加载术语永久链接列表,并为每个链接附加一个单击处理程序,该处理程序将永久链接中的href属性作为jQuery的属性传递。加载URL。然后单击一个术语将导致jQuery从术语页面中获取所需的内容,并在当前页面中显示它,而无需刷新。

这种方法有两个优点:

1-渐进增强。如果出于任何原因,浏览器没有JavaScript,那么术语页面将正常加载。

2-无需巧妙地摆弄查询:术语页为您完成所有操作。

相关推荐

Select2 AJAX和WP查询返回全部,不筛选

所以我在这里有点困惑。我经常使用Select2/AJAX/WP\\u查询来搜索和检索默认的WP帖子类型和我自己的自定义帖子类型。在过去几年中,我构建的几乎每个站点都至少包含一个实现。但是,我目前正在一个网站上搜索自定义帖子类型的结果,它只是返回所有内容。没有发生过滤。这是一个计划工具,管理员正在为一年中的每个月制定一个计划(自定义帖子类型)。时间表的标题为“月-年”,即。\'January 2022\'.问题是,如果您搜索“一月”,例如,您将得到返回的每个存在的时间表。包括2022年2月、2021 6月等