Skip to content

Instantly share code, notes, and snippets.

@anik
Last active August 29, 2015 14:22
Show Gist options
  • Save anik/6b0cfdd65accc1a1890b to your computer and use it in GitHub Desktop.
Save anik/6b0cfdd65accc1a1890b to your computer and use it in GitHub Desktop.
Metabox.io Shorthand List
*********************************************************************************
**
**
*********************************************************************************
// TEXT
array(
// Field name - Will be used as label
'name' => __( 'Text', 'your-prefix' ),
// Field ID, i.e. the meta key
'id' => "{$prefix}text",
// Field description (optional)
'desc' => __( 'Text description', 'your-prefix' ),
'type' => 'text',
// Default value (optional)
'std' => __( 'Default text value', 'your-prefix' ),
// CLONES: Add to make the field cloneable (i.e. have multiple value)
'clone' => true,
),
*********************************************************************************
**
**
*********************************************************************************
// CHECKBOX
array(
'name' => __( 'Checkbox', 'your-prefix' ),
'id' => "{$prefix}checkbox",
'type' => 'checkbox',
// Value can be 0 or 1
'std' => 1,
),
*********************************************************************************
**
**
*********************************************************************************
// RADIO BUTTONS
array(
'name' => __( 'Radio', 'your-prefix' ),
'id' => "{$prefix}radio",
'type' => 'radio',
// Array of 'value' => 'Label' pairs for radio options.
// Note: the 'value' is stored in meta field, not the 'Label'
'options' => array(
'value1' => __( 'Label1', 'your-prefix' ),
'value2' => __( 'Label2', 'your-prefix' ),
),
),
*********************************************************************************
**
**
*********************************************************************************
// SELECT BOX
array(
'name' => __( 'Select', 'your-prefix' ),
'id' => "{$prefix}select",
'type' => 'select',
// Array of 'value' => 'Label' pairs for select box
'options' => array(
'value1' => __( 'Label1', 'your-prefix' ),
'value2' => __( 'Label2', 'your-prefix' ),
),
// Select multiple values, optional. Default is false.
'multiple' => false,
'std' => 'value2',
'placeholder' => __( 'Select an Item', 'your-prefix' ),
),
*********************************************************************************
**
**
*********************************************************************************
// HIDDEN
array(
'id' => "{$prefix}hidden",
'type' => 'hidden',
// Hidden field must have predefined value
'std' => __( 'Hidden value', 'your-prefix' ),
),
*********************************************************************************
**
**
*********************************************************************************
// PASSWORD
array(
'name' => __( 'Password', 'your-prefix' ),
'id' => "{$prefix}password",
'type' => 'password',
),
*********************************************************************************
**
**
*********************************************************************************
// TEXTAREA
array(
'name' => __( 'Textarea', 'your-prefix' ),
'desc' => __( 'Textarea description', 'your-prefix' ),
'id' => "{$prefix}textarea",
'type' => 'textarea',
'cols' => 20,
'rows' => 3,
),
),
'validation' => array(
'rules' => array(
"{$prefix}password" => array(
'required' => true,
'minlength' => 7,
),
),
// optional override of default jquery.validate messages
'messages' => array(
"{$prefix}password" => array(
'required' => __( 'Password is required', 'your-prefix' ),
'minlength' => __( 'Password must be at least 7 characters', 'your-prefix' ),
),
)
)
);
*********************************************************************************
**
**
*********************************************************************************
// HEADING
array(
'type' => 'heading',
'name' => __( 'Heading', 'your-prefix' ),
'id' => 'fake_id', // Not used but needed for plugin
'desc' => __( 'Optional description for this heading', 'your-prefix' ),
),
*********************************************************************************
**
**
*********************************************************************************
// SLIDER
array(
'name' => __( 'Slider', 'your-prefix' ),
'id' => "{$prefix}slider",
'type' => 'slider',
// Text labels displayed before and after value
'prefix' => __( '$', 'your-prefix' ),
'suffix' => __( ' USD', 'your-prefix' ),
// jQuery UI slider options. See here http://api.jqueryui.com/slider/
'js_options' => array(
'min' => 10,
'max' => 255,
'step' => 5,
),
),
*********************************************************************************
**
**
*********************************************************************************
// NUMBER
array(
'name' => __( 'Number', 'your-prefix' ),
'id' => "{$prefix}number",
'type' => 'number',
'min' => 0,
'step' => 5,
),
*********************************************************************************
**
**
*********************************************************************************
// DATE
array(
'name' => __( 'Date picker', 'your-prefix' ),
'id' => "{$prefix}date",
'type' => 'date',
// jQuery date picker options. See here http://api.jqueryui.com/datepicker
'js_options' => array(
'appendText' => __( '(yyyy-mm-dd)', 'your-prefix' ),
'dateFormat' => __( 'yy-mm-dd', 'your-prefix' ),
'changeMonth' => true,
'changeYear' => true,
'showButtonPanel' => true,
),
),
*********************************************************************************
**
**
*********************************************************************************
// DATETIME
array(
'name' => __( 'Datetime picker', 'your-prefix' ),
'id' => $prefix . 'datetime',
'type' => 'datetime',
// jQuery datetime picker options.
// For date options, see here http://api.jqueryui.com/datepicker
// For time options, see here http://trentrichardson.com/examples/timepicker/
'js_options' => array(
'stepMinute' => 15,
'showTimepicker' => true,
),
),
*********************************************************************************
**
**
*********************************************************************************
// TIME
array(
'name' => __( 'Time picker', 'your-prefix' ),
'id' => $prefix . 'time',
'type' => 'time',
// jQuery datetime picker options.
// For date options, see here http://api.jqueryui.com/datepicker
// For time options, see here http://trentrichardson.com/examples/timepicker/
'js_options' => array(
'stepMinute' => 5,
'showSecond' => true,
'stepSecond' => 10,
),
),
*********************************************************************************
**
**
*********************************************************************************
// COLOR
array(
'name' => __( 'Color picker', 'your-prefix' ),
'id' => "{$prefix}color",
'type' => 'color',
),
*********************************************************************************
**
**
*********************************************************************************
// CHECKBOX LIST
array(
'name' => __( 'Checkbox list', 'your-prefix' ),
'id' => "{$prefix}checkbox_list",
'type' => 'checkbox_list',
// Options of checkboxes, in format 'value' => 'Label'
'options' => array(
'value1' => __( 'Label1', 'your-prefix' ),
'value2' => __( 'Label2', 'your-prefix' ),
),
),
*********************************************************************************
**
**
*********************************************************************************
// AUTOCOMPLETE
array(
'name' => __( 'Autocomplete', 'your-prefix' ),
'id' => "{$prefix}autocomplete",
'type' => 'autocomplete',
// Options of autocomplete, in format 'value' => 'Label'
'options' => array(
'value1' => __( 'Label1', 'your-prefix' ),
'value2' => __( 'Label2', 'your-prefix' ),
),
// Input size
'size' => 30,
// Clone?
'clone' => false,
),
*********************************************************************************
**
**
*********************************************************************************
// EMAIL
array(
'name' => __( 'Email', 'your-prefix' ),
'id' => "{$prefix}email",
'desc' => __( 'Email description', 'your-prefix' ),
'type' => 'email',
'std' => 'name@email.com',
),
*********************************************************************************
**
**
*********************************************************************************
// RANGE
array(
'name' => __( 'Range', 'your-prefix' ),
'id' => "{$prefix}range",
'desc' => __( 'Range description', 'your-prefix' ),
'type' => 'range',
'min' => 0,
'max' => 100,
'step' => 5,
'std' => 0,
),
*********************************************************************************
**
**
*********************************************************************************
// URL
array(
'name' => __( 'URL', 'your-prefix' ),
'id' => "{$prefix}url",
'desc' => __( 'URL description', 'your-prefix' ),
'type' => 'url',
'std' => 'http://google.com',
),
*********************************************************************************
**
**
*********************************************************************************
// OEMBED
array(
'name' => __( 'oEmbed', 'your-prefix' ),
'id' => "{$prefix}oembed",
'desc' => __( 'oEmbed description', 'your-prefix' ),
'type' => 'oembed',
),
*********************************************************************************
**
**
*********************************************************************************
// SELECT ADVANCED BOX
array(
'name' => __( 'Select', 'your-prefix' ),
'id' => "{$prefix}select_advanced",
'type' => 'select_advanced',
// Array of 'value' => 'Label' pairs for select box
'options' => array(
'value1' => __( 'Label1', 'your-prefix' ),
'value2' => __( 'Label2', 'your-prefix' ),
),
// Select multiple values, optional. Default is false.
'multiple' => false,
// 'std' => 'value2', // Default value, optional
'placeholder' => __( 'Select an Item', 'your-prefix' ),
),
*********************************************************************************
**
**
*********************************************************************************
// TAXONOMY
array(
'name' => __( 'Taxonomy', 'your-prefix' ),
'id' => "{$prefix}taxonomy",
'type' => 'taxonomy',
'options' => array(
// Taxonomy name
'taxonomy' => 'category',
// How to show taxonomy: 'checkbox_list' (default) or 'checkbox_tree', 'select_tree', select_advanced or 'select'. Optional
'type' => 'checkbox_list',
// Additional arguments for get_terms() function. Optional
'args' => array()
),
),
*********************************************************************************
**
**
*********************************************************************************
// POST
array(
'name' => __( 'Posts (Pages)', 'your-prefix' ),
'id' => "{$prefix}pages",
'type' => 'post',
// Post type
'post_type' => 'page',
// Field type, either 'select' or 'select_advanced' (default)
'field_type' => 'select_advanced',
'placeholder' => __( 'Select an Item', 'your-prefix' ),
// Query arguments (optional). No settings means get all published posts
'query_args' => array(
'post_status' => 'publish',
'posts_per_page' => - 1,
)
),
*********************************************************************************
**
**
*********************************************************************************
// WYSIWYG/RICH TEXT EDITOR
array(
'name' => __( 'WYSIWYG / Rich Text Editor', 'your-prefix' ),
'id' => "{$prefix}wysiwyg",
'type' => 'wysiwyg',
// Set the 'raw' parameter to TRUE to prevent data being passed through wpautop() on save
'raw' => false,
'std' => __( 'WYSIWYG default value', 'your-prefix' ),
// Editor settings, see wp_editor() function: look4wp.com/wp_editor
'options' => array(
'textarea_rows' => 4,
'teeny' => true,
'media_buttons' => false,
),
),
*********************************************************************************
**
**
*********************************************************************************
// DIVIDER
array(
'type' => 'divider',
'id' => 'fake_divider_id', // Not used, but needed
),
*********************************************************************************
**
**
*********************************************************************************
// FILE UPLOAD
array(
'name' => __( 'File Upload', 'your-prefix' ),
'id' => "{$prefix}file",
'type' => 'file',
),
*********************************************************************************
**
**
*********************************************************************************
// FILE ADVANCED (WP 3.5+)
array(
'name' => __( 'File Advanced Upload', 'your-prefix' ),
'id' => "{$prefix}file_advanced",
'type' => 'file_advanced',
'max_file_uploads' => 4,
'mime_type' => 'application,audio,video', // Leave blank for all file types
),
*********************************************************************************
**
**
*********************************************************************************
// IMAGE UPLOAD
array(
'name' => __( 'Image Upload', 'your-prefix' ),
'id' => "{$prefix}image",
'type' => 'image',
),
*********************************************************************************
**
**
*********************************************************************************
// THICKBOX IMAGE UPLOAD (WP 3.3+)
array(
'name' => __( 'Thickbox Image Upload', 'your-prefix' ),
'id' => "{$prefix}thickbox",
'type' => 'thickbox_image',
),
*********************************************************************************
**
**
*********************************************************************************
// PLUPLOAD IMAGE UPLOAD (WP 3.3+)
array(
'name' => __( 'Plupload Image Upload', 'your-prefix' ),
'id' => "{$prefix}plupload",
'type' => 'plupload_image',
'max_file_uploads' => 4,
),
*********************************************************************************
**
**
*********************************************************************************
// IMAGE ADVANCED (WP 3.5+)
array(
'name' => __( 'Image Advanced Upload', 'your-prefix' ),
'id' => "{$prefix}imgadv",
'type' => 'image_advanced',
'max_file_uploads' => 4,
),
*********************************************************************************
**
**
*********************************************************************************
// BUTTON
array(
'id' => "{$prefix}button",
'type' => 'button',
'name' => ' ', // Empty name will "align" the button to all field inputs
),
*********************************************************************************
**
**
*********************************************************************************
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment