Contributors: webdevstudios, jtsternberg, gregrickaby, tw2113, patrickgarman
Donate link: http://webdevstudios.com
Tags: metaboxes, forms, fields, options, settings
Requires at least: 3.8.0
Tested up to: 4.1.0
Stable tag: 2.0.1
License: GPLv2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Complete contributors list found here: github.com/WebDevStudios/CMB2/graphs/contributors
CMB2 is a metabox, custom fields, and forms library for WordPress that will blow your mind.
Plugin available 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.
- Create metaboxes to be used on post edit screens.
- Create forms to be used on an options pages.
- Create forms to handle user meta and display them on user profile add/edit pages.
- Flexible API that allows you to use CMB forms almost anywhere, even on the front-end.
- Several field types are included.
- Custom API hook that allows you to create your own field types.
- There are numerous hooks and filters, allowing you to modify many aspects of the library (without editing it directly).
- Repeatable fields for most field types are supported, as well as repeatable field groups.
- CMB2 is safe to bundle with any project. It will only load the newest version in the system.
- Thanks to many in the CMB2 community and to our friends at wp-translations.org, we have a good start on several translations for CMB2. Please feel free to work with wp-translations.org to provide even more!
-
CMB2 Field Type: CMB Attached Posts Field from coreymcollins:
custom_attached_posts
, for attaching posts to a page. -
CMB2 Field Type: CMB2 Post Search field:
post_search_text
adds a post-search dialog for searching/attaching other post IDs. -
CMB2 Field Type: CMB2 RGBa Colorpicker from JayWood:
rgba_colorpicker
adds a color picker that supports RGBa, (RGB with transparency (alpha) value). -
CMB2 Field Type: Google Maps from mustardBees: Custom field type for Google Maps.
The
pw_map
field stores the latitude/longitude values which you can then use to display a map in your theme. -
CMB2 Field Type: Select2 from mustardBees: Custom field types which use the Select2 script:
- The
pw_select field
acts much like the default select field. However, it adds typeahead-style search allowing you to quickly make a selection from a large list - The
pw_multiselect
field allows you to select multiple values with typeahead-style search. The values can be dragged and dropped to reorder
- The
-
CMB Field Type: Gallery from mustardBees: Adds a WordPress gallery field.
- Taxonomy_MetaData: WordPress Helper Class for saving pseudo-metadata for taxonomy terms. Includes an extended class for using CMB to generate the actual form fields.
- WordPress Shortcode Button: Uses CMB2 fields to generate fields for shortcode input modals.
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
If installing the plugin from wordpress.org:
- Upload the entire
/CMB2
directory to the/wp-content/plugins/
directory. - Activate CMB2 through the 'Plugins' menu in WordPress.
- Copy (and rename if desired)
example-functions.php
into to your theme or plugin's directory. - Edit to only include the fields you need and rename the functions.
- Profit.
If including the library in your plugin or theme:
- Place the CMB directory inside of your theme or plugin.
- 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'sfunctions.php
file. - 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).
- Profit.
2.0.0 is the official version number for the transition to CMB2, and 2.0.1 is the official version after beta. It is a complete rewrite. Improvements and fixes are listed below. Note: This release requires WordPress 3.8+
- Converted
<table>
markup to more generic<div>
markup to be more extensible and allow easier styling. - Much better handling and display of repeatable groups.
- Entirely translation-ready with full translations in Spanish, French (Props @fredserva - #127), Finnish (Props @onnimonni - #108), Swedish (Props @EyesX - #141), and English.
- Add cmb fields to new user page. Props GioSensation, (#616).
- Improved and additional helper-functions.
- Added new features and translation for datepicker. Props kalicki, (#657).
- General code standards cleanup. Props gregrickaby, (#17 & others).
- Use SASS for development. Props gregrickaby, (#18).
- New
hidden
field type. - Ability to override text strings in fields via field options parameter.
- Added composer.json. Props nlemoine, (#19).
- New field 'hooks' can take static text/html or a callback.
- New
preview_size
parameter forfile
field type. Takes an array or named image size. - Empty index.php file to all folders (for more security). Props brunoramalho, (#41).
- Clean up styling. Props brunoramalho, (#43) and senicar.
- Collapsible field groups. Props cluke009, (#59).
- Allow for override of update/remove for CMB2_Field. Props sc0ttkclark, (#65).
- Use class button-disabled instead of disabled="disabled" for buttons. Props sc0ttkclark, (#66).
- New before/after dynamic form hooks.
- Larger unit test coverage. Props to @pmgarman for assistance. (#90 and #91)
- Added helper function to update an option. Props mAAdhaTTah, (#110).
- More JS hooks during repeat group shifting. Props AlchemyUnited, (#125).
- New metabox config option for defaulting to closed.
- New hooks,
cmb2_init
andcmb2_init_{$cmb_id}
.
- New mechanism to ensure CMB2 only loads the most recent version of CMB2 in your system. This fixes the issue where another bundled version could conflict or take precendent over your up-to-date version.
- Fix issue with field labels being hidden. Props mustardBees, (#48).
- Address issues with autoloading before autoloader is setup. Props JPry, (#56).
- Fixed 'show_on_cb' for field groups. Props marcusbattle, (#98).
- Make get_object_terms work with and without object caching. Props joshlevinson, (#105).
- Don't use
__DIR__
in example-functions.php to ensure PHP 5.2 compatibility. Props bryceadams, (#129). - Added support for radio input swapping in repeatable fields. Props DevinWalker, (#138, #149).
- Fix metabox form not being returned to caller. Props akshayagarwal, (#145).
- Run stripslashes before saving data, since WordPress forces magic quotes. Props clifgriffin, (#162).
- 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).