जवाबों:
Drupal 7 में खेतों में कर की शर्तें लागू की गई हैं। मान लें कि आपने अपने सामग्री प्रकार के लिए field_category नाम का एक वर्गीकरण क्षेत्र निर्धारित किया है, तो आप इसे इस रूप में देख सकते हैं:
$language = 'und'; // or will be provided by some Drupal hooks
foreach ($node->field_category[$language] as $delta => $value) {
$term = taxonomy_term_load($value['tid']);
}
आप फ़ील्ड नाम के लिए पहुँच नहीं है, तो शायद सबसे आसान तरीका नोड्स के लिए सीधे डेटाबेस क्वेरी करने के लिए है:
$results = db_query('SELECT tid FROM {taxonomy_index} WHERE nid = :nid', array(':nid' => $node->nid));
foreach ($results as $result) {
$term = taxonomy_term_load($result->tid);
}
हालांकि, ध्यान रखें कि यदि आपके पास एक से अधिक टैक्सोनॉमी फ़ील्ड हैं, तो आप अलग-अलग वोकैबुलरीज़ से शर्तों की गड़बड़ी को समाप्त कर सकते हैं।
taxonomy_term_load_multiple($results->fetchCol());
एक ही क्वेरी में शर्तों को लोड करने के लिए उपयोग कर सकते हैं ।
field_get_items('node', $node, 'field_category')
सही भाषा में फ़ील्ड प्राप्त करने के लिए उपयोग कर सकते हैं।
फ़ील्ड नाम और बिना db_query निर्दिष्ट किए बिना सभी शर्तों को हथियाने का एक बहुत ही सामान्य तरीका यहां दिया गया है:
function example_get_terms($node) {
$terms = array();
foreach (field_info_instances('node', $node->type) as $fieldname => $info) {
foreach (field_get_items('node', $node, $fieldname) as $item) {
if (is_array($item) && !empty($item['tid']) && $term = taxonomy_term_load($item['tid'])) {
$terms[] = $term->name;
}
}
}
return $terms;
}
if (arg(0) == 'node' && is_numeric(arg(1))) {$nid = arg(1);}
प्राप्त करने के लिए nid
और $node = node_load($nid);
के लिए अपने समारोह काम करने के लिए में।