ACF_Admin_Field_Groups::render_admin_table_column_locations()
Displays a visual representation of the field group's locations.
Метод класса: ACF_Admin_Field_Groups{}
Хуков нет.
Возвращает
null
. Ничего (null).
Использование
$ACF_Admin_Field_Groups = new ACF_Admin_Field_Groups(); $ACF_Admin_Field_Groups->render_admin_table_column_locations( $field_group );
- $field_group(массив) (обязательный)
- The field group.
Список изменений
С версии 5.9.0 | Введена. |
Код ACF_Admin_Field_Groups::render_admin_table_column_locations() ACF Admin Field Groups::render admin table column locations ACF 6.0.4
public function render_admin_table_column_locations( $field_group ) { $objects = array(); // Loop over location rules and determine connected object types. if ( $field_group['location'] ) { foreach ( $field_group['location'] as $i => $rules ) { // Determine object types for each rule. foreach ( $rules as $j => $rule ) { // Get location type and subtype for the current rule. $location = acf_get_location_rule( $rule['param'] ); $location_object_type = ''; $location_object_subtype = ''; if ( $location ) { $location_object_type = $location->get_object_type( $rule ); $location_object_subtype = $location->get_object_subtype( $rule ); } $rules[ $j ]['object_type'] = $location_object_type; $rules[ $j ]['object_subtype'] = $location_object_subtype; } // Now that each $rule conains object type data... $object_types = array_column( $rules, 'object_type' ); $object_types = array_filter( $object_types ); $object_types = array_values( $object_types ); if ( $object_types ) { $object_type = $object_types[0]; } else { continue; } $object_subtypes = array_column( $rules, 'object_subtype' ); $object_subtypes = array_filter( $object_subtypes ); $object_subtypes = array_values( $object_subtypes ); $object_subtypes = array_map( 'acf_array', $object_subtypes ); if ( count( $object_subtypes ) > 1 ) { $object_subtypes = call_user_func_array( 'array_intersect', $object_subtypes ); $object_subtypes = array_values( $object_subtypes ); } elseif ( $object_subtypes ) { $object_subtypes = $object_subtypes[0]; } else { $object_subtypes = array( '' ); } // Append to objects. foreach ( $object_subtypes as $object_subtype ) { $object = acf_get_object_type( $object_type, $object_subtype ); if ( $object ) { $objects[ $object->name ] = $object; } } } } // Reset keys. $objects = array_values( $objects ); // Display. $html = ''; if ( $objects ) { $limit = 3; $total = count( $objects ); // Icon. $html .= '<span class="dashicons ' . $objects[0]->icon . ( $total > 1 ? ' acf-multi-dashicon' : '' ) . '"></span>'; // Labels. $labels = array_column( $objects, 'label' ); $labels = array_slice( $labels, 0, 3 ); $html .= implode( ', ', $labels ); // More. if ( $total > $limit ) { $html .= ', ...'; } } else { $html = '<span class="dashicons dashicons-businesswoman"></span> ' . __( 'Various', 'acf' ); } // Filter. echo acf_esc_html( $html ); }