मैंने देखा है कि इकाई और बंडल के साथ फ़ील्ड की सूची कैसे प्राप्त करें field_info_instances()
और field_info_field()
, लेकिन मैं किसी विशेष प्रकार के सभी फ़ील्ड प्राप्त करने का तरीका नहीं देख रहा हूं।
मैं इसे ठीक उसी तरह से पकाने में सक्षम था जैसा मैं चाहता हूं:
function field_get_fields_of_type($type) {
$fields_info = field_info_instances();
$return = array();
foreach ($fields_info as $entity => $bundles) {
foreach ($bundles as $bundle => $fields) {
foreach ($fields as $field_name => $info) {
$more_info_because_type_isnt_included = field_info_field($field_name);
if ( $more_info_because_type_isnt_included['type'] == $type) {
$return[$field_name] = $more_info_because_type_isnt_included;
}
}
}
}
return $return;
}
dpm(field_get_fields_of_type('entityreference')); // prints out all entityreference fields
लेकिन ऐसा लगता है कि कोड का एक भयानक बहुत कुछ है, और कुछ प्राप्त करने के लिए बहुत सारे लूपिंग की आवश्यकता है जो कि संभवत: फ़ील्ड एपीआई के माध्यम से पहुंच योग्य होना चाहिए।
क्या किसी को फील्ड एपीआई फ़ंक्शन के बारे में पता है जो मेरे द्वारा खोजे जा रहे डेटा को अधिक कुशलता से प्राप्त करेगा?