Varlık ve paket ile alanların listelerini nasıl alacağımı gördüm field_info_instances()
ve field_info_field()
ancak belirli bir türdeki tüm alanları almanın bir yolunu göremiyorum.
Tam olarak istediğimi yapmak için bunu pişirebildim:
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
Ancak bu, alan API'sı aracılığıyla erişilebilir olması gereken bir şey elde etmek için çok fazla kod ve ve çok fazla döngü gibi görünüyor.
Aradığım verileri daha verimli bir şekilde alan bir Field API işlevi bilen var mı?