我刚发现一个脚本以编程方式将字段集合删除到特定节点:
<?php
$node = node_load(1);
$field_collection_item_value = $node->field_page_collection1[LANGUAGE_NONE][0]['value']; // Take field collection item value.
entity_delete_multiple('field_collection_item', array($field_collection_item_value)); // Delete field collection item.
?>
不幸的是,当我看到它时,它只删除了第一个字段集合,我需要选择我要删除的字段集。
这是我的结构:
多个字段集合,具有:对另一个节点的引用和两个选择
我在网址中有引用nid所以我可以使用它,但我不知道如何选择正确的字段集合。
由于
答案 0 :(得分:2)
尝试使用它:
$node = node_load(1);
$searhed_nid = '2';
$field_page_collection1 = field_get_items('node', $node, 'field_page_collection1');
foreach ($field_page_collection1 as $item) {
$field_collection = entity_load_single('field_collection_item', $item['value']);
$fc_item_wrapper = entity_metadata_wrapper('field_collection_item', $field_collection);
// lets take name the field with ref field_ref_nid.
$field_val = $fc_item_wrapper->field_ref_nid->raw();
if ($field_val == $searhed_nid) {
$field_collection->delete();
}
}