Câu trả lời:
Mối quan hệ giữa nội dung nhóm và nhóm là thông qua quan hệ thành viên. Vì có thể nội dung nhóm là thành viên của nhiều nhóm, nên đoạn mã sau sẽ lấy danh sách các nhóm:
$groups = og_get_entity_groups('node', $node);
Đây là một mảng nhiều chiều với nhóm entity_types là khóa và thành viên là giá trị. Mỗi thành viên là một mảng với id thành viên là khóa và sau đó id thực thể của nhóm làm giá trị. Vì vậy, để đi từ một nút nội dung nhóm, đến tất cả các nhóm phụ huynh mà bạn sẽ sử dụng ...
foreach (og_get_entity_groups('node', $node) as $entity_type => $og_memberships) {
foreach ($og_memberships as $membership_id => $entity_id) {
if ($entity_type == 'node') {
// Assuming we only want to deal with node groups, we can
// access the group node with...
$group_node = node_load($entity_id);
}
}
}
Tôi cần điều này tối qua. Đã làm như thế này:
$node = node_load($nid);
$og_id = current($node->og_groups)
$ og_groups chứa một mảng của tất cả OG mà bài đăng là thành viên. Bạn có thể có được tất cả với một foreach. Chìa khóa để truy cập chúng là nid.
$og_groups=array(5=>5, 15=>15);
Mong rằng sẽ giúp.
Các og(organic groups)
mô-đun bổ sung entity refrence
lĩnh vực với các loại nội dung bạn muốn có một group
hoặc là một group content
. theo tên mặc định của trường là og_group_ref
nhưng có thể nó đổi thành tên khác. Nếu bạn muốn tìm chính xác tên trường og, vui lòng xem trường quản lý loại nội dung của bạn (giả sử loại nội dung bài viết được xem xét của bạn) admin/structure/types/manage/article/fields
.
Chọn trường nhóm TÊN MÁY (một số thứ như og_group_ref
).
Bạn có thể một cái gì đó như thế này:
$node=node_load($nid);
$ogId=$node->og_group_ref['und'][0]['target_id'];
Tìm ra gid sau đó thử in toàn bộ đối tượng nút $, đại loại như:
print_r (nút $);
Một số lý do câu trả lời Drupal sẽ không hiển thị bất cứ điều gì trong các thẻ php, nhưng bạn nên bọc php trước để làm cho đầu ra dễ đọc hơn.
Hãy thử ctrl + F và tìm nơi số được xuất ra. Sau đó, bạn có thể theo định dạng của mảng / đối tượng để in nó khi nút $ có sẵn.