iG:Custom Metaboxes

0

iG:Custom Metaboxes is a WordPress plugin to provide an object oriented and clean API for creating custom meta-boxes on wp-admin post_type add/edit screens. This plugin is more or less

Version
Last updated
Active installations
WordPress Version
Tested up to
Rating
Total ratings
Tags
This plugin is outdated and might not be supported anymore.

Description

iG:Custom Metaboxes is a WordPress plugin to provide an object oriented and clean API for creating custom meta-boxes on wp-admin post_type add/edit screens.

This plugin is more or less a library which is meant to be used in other plugins or themes. On its own this plugin does nothing, it has no UI nor any configuration to be set/tweaked. This plugin allows addition of HTML5 fields however the functionality of specialized fields like color picker, date picker etc. is browser dependent. The plugin does not add any JavaScript to make these fields compatible with browsers which don’t support HTML5 or which don’t add functionality to these specialized fields.

This plugin has been written with WordPress.com VIP compliance in mind, so you can use it as is even if you host your website with WordPress.com VIP.

Requirements: This plugin requires PHP 5.4 or better and is supported on WordPress 4.0 or better. It might work on a lower version of PHP or WordPress but no support would be provided for those platforms.

Pull requests on Github are welcome.

Github: https://github.com/coolamit/ig-custom-metaboxes

Plugin Usage

On its own this plugin will not do anything, it is a library meant to be used in other plugins/themes. It provides an API to create custom metaboxes in wp-admin on post_type screens in an object oriented way.

Usage Example:

$metabox = new iGMetaboxMetabox( 'my-metabox-1' );

$metabox->set_title( 'My Cool Metabox' )
        ->set_context( 'normal' )
        ->set_priority( 'default' )
        ->set_css_class( 'my-metabox' )
        ->set_post_type( 'post' )
        ->add_field(    //add a simple text input field
            iGMetaboxText_Field::create( 'my-txt-1', 'My Text Field 1' )
                                ->set_description( 'Some Desc for 1st Field' )
                                ->set_css_class( 'my-txt-css-1 second-css-cls' )
                                ->set_placeholder( 'Enter the first text here' )
                                ->set_size( 50 )
        )
        ->add_field(    //add a HTML5 number input field
            iGMetaboxNumber_Field::create( 'my-num-1', 'My Numb Field A' )
                                ->set_description( 'Some Desc for 1st Number Field' )
                                ->set_css_class( 'my-num-css-1' )
                                ->set_placeholder( 'Enter the first number here' )
                                ->set_step( 2.5 )
        )
        ->add_field(    //add a HTML5 color picker
            iGMetaboxColor_Field::create( 'my-col-1', 'My Color Field 1a' )
                                ->set_description( 'Some Desc for 1st Color Field' )
                                ->set_css_class( 'my-colr-css-1' )
        )
        ->add_field(    //add a HTML date picker
            iGMetaboxDate_Field::create( 'my-dt-1', 'My Date Field 1a' )
                                ->set_description( 'Some Desc for 1st Date Field' )
                                ->set_css_class( 'my-dt-css-1' )
                                ->set_min( '2014-05-01' )
        )
        ->add_field(    //add a HTML5 date time picker
            iGMetaboxDate_Time_Field::create( 'my-dttm-1', 'My Date Time Field A' )
                                ->set_description( 'Some Desc for 1st Date Time Field' )
                                ->set_css_class( 'my-dttm-css-1' )
                                ->set_min( '2014-05-01T05:00' )
        )
        ->add_field(    //add a radio button group
            iGMetaboxRadio_Group::create( 'my-rdg-1', 'My Radio Group A' )
                                ->set_description( 'Some Desc for 1st Radio Group' )
                                ->set_css_class( 'my-rdg-css-1' )
                                ->set_values( array(
                                    'apple' => 'Apple',
                                    'grape' => 'Grape',
                                    'banana' => 'Banana',
                                    'orange' => 'Orange',
                                    'peach' => 'Peach',
                                ) )
        )
        ->add();