$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_key => $field) { $meta_key = '_aitepc_' . $field_key; $value = get_post_meta($post->ID, $meta_key, true); ?>
$field) { $input_name = 'aitepc_' . $field_key; $meta_key = '_aitepc_' . $field_key; if (isset($_POST[$input_name])) { $value = wp_unslash($_POST[$input_name]); switch ($field['type']) { case 'text': case 'date': $value = sanitize_text_field($value); break; case 'textarea': $value = sanitize_textarea_field($value); break; } update_post_meta($post_id, $meta_key, $value); } else { delete_post_meta($post_id, $meta_key); } } } add_action('save_post', 'aitepc_save_custom_fields_metabox');