高级自定义字段 - 按先前选择的分类法过滤后期对象字段

时间:2017-03-08 12:35:24

标签: wordpress wordpress-theming advanced-custom-fields

我有一个名为Event的自定义帖子类型,我想在其中添加从大型位置列表中选择的位置。为了简化这个过程,我想通过一个名为locality的类别来过滤这些位置。

为实现这一目标,我创建了一个名为Locations的自定义帖子类型和一个名为Locality的自定义分类。每个事件都添加了一个字段组,其中包含两个下拉列表,一个用于Locality(分类法),另一个用于Locations(Post Object)。

我无法实现的目标是按所选地点过滤地点。

4 个答案:

答案 0 :(得分:0)

我不相信您可以根据另一个自定义字段的当前选项动态过滤一个自定义字段的选项,并在adminend上更改该选项。您可以使用与WP_Query非常相似的查询修改来过滤显示在字段中的选项,我很确定无法动态执行。

我几乎要作弊,而不是分配给他们的分类标准的帖子,包括帖子名称本身的位置和位置。

所以说,发布[伦敦博物馆]与分类[伦敦]

会变成

[伦敦] [伦敦博物馆]

[伦敦] [海德公园] ......等

或类似的东西。我假设您只想将一个位置分配给任何特定地点......

然后我会创建一个关系领域,每当我在寻找伦敦博物馆时,我都会输入

伦敦缪斯 ......

答案 1 :(得分:0)

现在看来这个问题已经过时了,但如果你在事件中添加了两个自定义字段 - 位置和地点,那么你会让生活更轻松。这样您就不必加入两个表,并且可以轻松使用WP meta_query来过滤帖子。

答案 2 :(得分:0)

我所理解的是,您希望每当您选择地点时,应该在那里显示它的位置,最后您可以使用位置过滤事件。

=>要设置位置,您为地点和位置分配了两个下拉列表。你应该使用ajax。当我选择任何位置而不是下一个下拉列表时,选择所在位置的选项。

=>要在事件帖子中添加值:您可能有两个选项 i)您可以添加位置作为分类,并使用“税务查询”进行搜索以进行过滤 ii)将位置添加为事件的父级,并在wp_query中搜索“child of”以过滤

答案 3 :(得分:0)

您有两个选择:

  1. 对定制js进行编程,以在localities字段更改时过滤location字段。这样做并非难事,因为ACF会为其html中的每个字段设置字段ID。您可以将此js脚本放入管理钩子中(可能是admin_enqueue_scripts,选中this solution)并过滤自定义帖子类型。

  2. 所有这些都可以在ACF gui中完成,但这是一个技巧,也是因为缺少acf分类法字段的条件逻辑。您需要做的是在事件acf字段中创建与本地一样多的“位置”字段。然后将这些位置设置为特定位置。 enter image description here现在来了奇怪的部分。您可能希望设置条件逻辑以显示是否为本地。俄罗斯,但缺少“特定价值”字段。因此,您必须设置两个规则,一个用于设置“大于”,另一个用于设置“小于”。 enter image description here。如果您有很多地区,这会很痛苦,但是如果您的地区列表中只有几个项目,那么这可能是个不错的选择。如果您将位置字段命名为所有“位置”,则只需使用get_field('location')即可获取值。我对此进行了测试,并且在命名所有位置字段location时没有冲突。 ACF在那里做得相当不错,为这些字段使用了唯一的名称,以便您随便命名这些字段。