Saya telah melihat cara mendapatkan daftar bidang menurut entitas dan bundel dengan field_info_instances()
dan field_info_field()
, tetapi saya tidak melihat cara untuk mendapatkan semua bidang dari jenis tertentu.
Saya bisa memasak ini untuk melakukan apa yang saya inginkan:
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
Tapi itu sepertinya banyak sekali kode, dan banyak sekali perulangan untuk mendapatkan sesuatu yang mungkin bisa dijangkau melalui API lapangan.
Adakah yang tahu fungsi Field API yang akan lebih efisien mengambil data yang saya cari?