$field) { foreach ($field['post_types'] as $pt) { if (!isset($fields_by_pt[$pt])) { $fields_by_pt[$pt] = array(); } $fields_by_pt[$pt][$key] = $field; } } foreach ($fields_by_pt as $pt => $fields) { add_meta_box( 'aitepc_custom_fields_metabox', __('Custom Fields', 'ait-easy-post-customization'), 'aitepc_custom_fields_metabox_callback', $pt, 'normal', 'default', array('fields' => $fields) ); } } add_action('add_meta_boxes', 'aitepc_add_custom_fields_metabox'); // Metabox callback function function aitepc_custom_fields_metabox_callback($post, $metabox) { $fields = $metabox['args']['fields']; wp_nonce_field('aitepc_save_custom_fields', 'aitepc_custom_fields_nonce'); foreach ($fields as $field) { $meta_key = '_aitepc_' . $field['key']; $value = get_post_meta($post->ID, $meta_key, true); ?>