আমি দেখেছি সত্তা এবং বান্ডিল দ্বারা ক্ষেত্র তালিকা পেতে কিভাবে 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
তবে এটি কোডের একটি ভয়াবহ বলে মনে হচ্ছে এবং এমন কিছু পাওয়ার জন্য ভয়ঙ্কর প্রচুর লুপিং রয়েছে যা সম্ভবত ফিল্ড এপিআইয়ের মাধ্যমে পৌঁছনীয়।
এমন কি এমন কোনও ফিল্ড এপিআই ফাংশন সম্পর্কে জানেন যে আমি যে ডেটাটি খুঁজছি তা আরও দক্ষতার সাথে পুনরুদ্ধার করবে?