在我的 drupal 7 中,我有 2 种如下内容类型:
- 内容A
- ContentB(具有对 ContentA 的字段实体引用)
在 ContentA 的前端详细信息页面中,我想显示一个带有 ContentB 列表的块/视图,该列表的 Entity Reference 字段设置为当前 ContentA。
我创建了 Block 类型的视图并将其正确添加到页面中,但我无法根据当前 ContentA 过滤 ContentB。
你可以帮帮我吗?
谢谢
在我的 drupal 7 中,我有 2 种如下内容类型:
在 ContentA 的前端详细信息页面中,我想显示一个带有 ContentB 列表的块/视图,该列表的 Entity Reference 字段设置为当前 ContentA。
我创建了 Block 类型的视图并将其正确添加到页面中,但我无法根据当前 ContentA 过滤 ContentB。
你可以帮帮我吗?
谢谢
您应该为将用于过滤到 ContentB 的块视图的值添加一个上下文过滤器。然后在“当过滤器值不在 URL 中”区域的上下文过滤器中选择“提供默认值”并输入“PHP 代码”(您应该为此启用 php 过滤器)。在您的 php 代码区域中,您应该有以下代码
$node=menu_get_object();
return $node->field_your_machine_field_name['und'][0]['target_id']; // this is the field you will use for fitlering
希望能帮助到你
更新
如果您需要在块中显示具有相同选择的类似结果(例如 ContentB 的类似结果在 ContentA 的引用字段中具有相同选择),上述代码将起作用。我不会删除,因为您可能也需要它在您的项目。我误解了。实际上解决方案更简单。您应该将上下文过滤器添加到该字段并在“当过滤器值不在 URL 中时”区域中选择“提供默认值”和“从 url 提供 id”