CMB2 is a developer’s toolkit for building metaboxes, custom fields, and forms for WordPress that will blow your mind. Easily manage meta for posts, terms, users, comments, or create custom option pages.

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.


Development occurs on Github, and all contributions welcome. Please read the CONTRIBUTING doc for more details.

A complete list of all our awesome contributors found here:



If you are looking to provide language translation files, Please do so via WordPress Plugin Translations.


  • CMB2 documentation can be found at the CMB2 wiki on github. Also, If you’re into reading code and inline documentation, we tried to keep all functions and methods fully inline-documented.

3rd Party Resources

Custom Field Types

Other Helpful Resources



Known Issues

  • 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.

View plugin listing on →


Latest version: Download CMB2 v2.11.0 [zip]


If installing the plugin from

  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 CMB directory inside of your theme or plugin.
  2. Copy (and rename if desired) example-functions.php into a folder above the CMB 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 (CMB directory should be left unedited in order to easily update the library).
  4. Profit.



  • 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.