/CMB2

CMB2 is a developer's toolkit for building metaboxes, custom fields, and forms for WordPress that will blow your mind.

Primary LanguageCSS

CMB2

Gitter Travis Scrutinizer Code Quality Scrutinizer Coverage Dockunit Status Project Stats

CMB2

Contributors: webdevstudios, jtsternberg, gregrickaby, tw2113, patrickgarman, JPry Donate link: http://webdevstudios.com
Tags: metaboxes, forms, fields, options, settings
Requires at least: 3.8.0
Tested up to: 4.4.2
Stable tag: 2.2.1
License: GPLv2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html

Wordpress plugin Wordpress Wordpress rating

Complete contributors list found here: github.com/WebDevStudios/CMB2/graphs/contributors

Description

CMB2 is a developer's toolkit for building metaboxes, custom fields, and forms for WordPress that will blow your mind.

Download plugin on wordpress.org

CMB2 is a complete rewrite of Custom Metaboxes and Fields for WordPress. To get started, please follow the examples in the included example-functions.php file and have a look at the basic usage instructions.

You can see a list of available field types here.

Features:

Translation

3rd Party Resources

Custom Field Types

Other Helpful Resources

  • WordPress Shortcode Button: Uses CMB2 fields to generate fields for shortcode input modals.
  • WDS-Simple-Page-Builder: Uses existing template parts in the currently-active theme to build a customized page with rearrangeable elements. Built with CMB2.
  • CMB2 Example Theme: Demonstrate how to include CMB2 in your theme, as well as some cool tips and tricks.
  • facetwp-cmb2: FacetWP integration with CMB2.
  • CMB2-grid from origgami: A grid system for WordPress CMB2 library that allows the creation of columns for a better layout in the admin.
  • CMB2 Metatabs Options from rogerlos: CMO makes it easy to create options pages with multiple metaboxes--and optional WordPress admin tabs.
  • CMB2 Conditionals from jcchavezs: Allows developers to relate fields so the display of one is conditional on the value of another.
  • CMB2 Metabox Code Generator from hasinhayder: Use this code generator to generate fully functional CMB2 metaboxes by visually adding fields in the designer.

Contribution

All contributions welcome. If you would like to submit a pull request, please check out the trunk branch and pull request against it. Please read the CONTRIBUTING doc for more details.

A complete list of all our awesome contributors found here: github.com/WebDevStudios/CMB2/graphs/contributors

Links

Installation

If installing the plugin from wordpress.org:

  1. Upload the entire /CMB2 directory to the /wp-content/plugins/ directory.
  2. Activate CMB2 through the 'Plugins' menu in WordPress.
  3. Copy (and rename if desired) example-functions.php into to your theme or plugin's directory.
  4. Edit to only include the fields you need and rename the functions.
  5. Profit.

If including the library in your plugin or theme:

  1. Place the CMB2 directory inside of your theme or plugin.
  2. Copy (and rename if desired) example-functions.php into a folder above the CMB2 directory OR copy the entirety of its contents to your theme's functions.php file.
  3. Edit to only include the fields you need and rename the functions (CMB2 directory should be left unedited in order to easily update the library).
  4. Profit.

Most Recent Changes

2.2.1 - 2016-02-29

Bug Fixes

  • Fixes back-compatibility issue which could allow multiple CMB2 instances to load (causing fatal errors). (#520)

2.2.0

Enhancements

  • Term Meta! As of WordPress 4.4, WordPress will have the ability to use term metadata. CMB2 will work with term meta out of the box. To do so, see the example cmb registration in the yourprefix_register_taxonomy_metabox function in example-functions.php.
  • New hooks which hook in after save field action: 'cmb2_save_field' and "cmb2_save_field_{$field_id}". Props wpsmith (#475).
  • The "cmb2_sanitize_{$field_type}" hook now runs for every field type (not just custom types) so you can override the sanitization for all field types via a filter.
  • CMB2::show_form() is now composed of 3 smaller methods, CMB2::render_form_open(), CMB2::render_field(), CMB2::render_form_close() (#506).
  • RTL Style generated. Props @devinsays (#510).
  • Properly scope date/time-pickers styling by adding a class to only cmb2 picker instances. (#527)
  • Allow per-field overrides for the date/time/color picker options (wiki documentation: Modify Field Date, Time, or Color Picker options)
  • Fix some inline documentation issues. Props @jrfnl (#579).
  • Include .gitattributes file for excluding development resources when using Composer. Props @benoitchantre (#575, #53).

Bug Fixes

  • Fixed issue with 'taxonomy_select' field type where a term which evaluated falsey would not be displayed properly. Props adamcapriola (#477).
  • Fix issue with colorpickers not changing when sorting groups.
  • 'show_option_none' field parameter now works on taxonomy fields when explicitly setting to false.
  • Fix so the date/time-picker javascript respects the 'date_format' and 'time_format' field parameters. Props @yivi (#39, #282, #300, #318, #330, #446, #498).
  • Fix a sometimes-broken unit test. Props JPry (#539).
  • Fix issue with oembed fields not working correctly on options pages. (#542).
  • Fix issue with repeatable field elements stealing focus from "submit" button.

View complete changelog

Known Issues

  • The CMB2 url (for css/js resources) does not define properly in all WAMP/XAMP (Windows) environments.
  • Metabox containing WYSIWYG editor cannot be moved or used in a repeatable way at this time (this is a TinyMCE issue).
  • Not all fields work well in a repeatable group.