function jcf_init() { if (!is_admin()) { return; } /** * load translations */ load_plugin_textdomain(JCF_TEXTDOMAIN, false, dirname(plugin_basename(__FILE__)) . '/languages/'); // init global variables global $jcf_fields, $jcf_fieldsets; // add admin page add_action('admin_menu', 'jcf_admin_menu'); // add ajax call processors add_action('wp_ajax_jcf_add_fieldset', 'jcf_ajax_add_fieldset'); add_action('wp_ajax_jcf_delete_fieldset', 'jcf_ajax_delete_fieldset'); add_action('wp_ajax_jcf_change_fieldset', 'jcf_ajax_change_fieldset'); add_action('wp_ajax_jcf_update_fieldset', 'jcf_ajax_update_fieldset'); add_action('wp_ajax_jcf_add_field', 'jcf_ajax_add_field'); add_action('wp_ajax_jcf_save_field', 'jcf_ajax_save_field'); add_action('wp_ajax_jcf_delete_field', 'jcf_ajax_delete_field'); add_action('wp_ajax_jcf_edit_field', 'jcf_ajax_edit_field'); add_action('wp_ajax_jcf_fields_order', 'jcf_ajax_fields_order'); // add $post_type for ajax if (!empty($_POST['post_type'])) { jcf_set_post_type($_POST['post_type']); } // init field classes and fields array jcf_field_register('Just_Field_Input'); jcf_field_register('Just_Field_Select'); jcf_field_register('Just_Field_SelectMultiple'); jcf_field_register('Just_Field_Checkbox'); jcf_field_register('Just_Field_Textarea'); jcf_field_register('Just_Field_DatePicker'); jcf_field_register('Just_Field_Upload'); jcf_field_register('Just_Field_FieldsGroup'); jcf_field_register('Just_Field_RelatedContent'); /** * to add more fields with your custom plugin: * - add_action 'jcf_register_fields' * - include your components files * - run jcf_field_register('YOUR_COMPONENT_CLASS_NAME'); */ do_action('jcf_register_fields'); // add post edit/save hooks add_action('add_meta_boxes', 'jcf_post_load_custom_fields', 10, 1); add_action('save_post', 'jcf_post_save_custom_fields', 10, 2); // add custom styles and scripts if (!empty($_GET['page']) && $_GET['page'] == 'just_custom_fields') { add_action('admin_print_styles', 'jcf_admin_add_styles'); add_action('admin_print_scripts', 'jcf_admin_add_scripts'); } }
/** * Include classes for shortcodes for the frontend usage */ function jcf_shortcode_init_fields() { // init field classes and fields array jcf_field_register('Just_Field_Input'); jcf_field_register('Just_Field_Select'); jcf_field_register('Just_Field_SelectMultiple'); jcf_field_register('Just_Field_Checkbox'); jcf_field_register('Just_Field_Textarea'); jcf_field_register('Just_Field_DatePicker'); jcf_field_register('Just_Field_Simple_Media'); jcf_field_register('Just_Field_Table'); jcf_field_register('Just_Field_Collection'); jcf_field_register('Just_Field_RelatedContent'); jcf_field_register('Just_Field_Upload'); jcf_field_register('Just_Field_FieldsGroup'); /** * to add more fields with your custom plugin: * - add_action 'jcf_register_fields' * - include your components files * - run jcf_field_register('YOUR_COMPONENT_CLASS_NAME'); */ do_action('jcf_register_fields'); }