ButterBean Post Meta Box Framework 1.0 Released

Justin Tadlock’s new ButterBean post meta box framework was officially released this week. The framework allows developers to easily build a metabox with a tabbed UI to accommodate multiple fields. After roughly three months of beta testing, ButterBean is ready for use in projects. It can be dropped into a plugin or used as a standalone plugin.

“The framework was built to bundle with plugins that need a sweet UI for handling several meta fields,” Tadlock said in the release announcement. “It’s particularly useful with custom post types. It is merely an interface for metadata in the same way that the WordPress customizer is an interface.”

butterbean-example

If you enjoy working with the WordPress Customizer API, then you may appreciate how Tadlock structured ButterBean. The PHP code for the framework was architecturally modeled after this API. The templating, however, uses Underscore.js.

“If you’re not a JavaScript developer, don’t worry,” Tadlock said. “Assuming you’re not building advanced custom controls that require custom JavaScript, you’ll never have to touch it. You can register everything in PHP.”

Tadlock said one of the most frequently asked questions about this project is why he didn’t simply opt to use one of the WordPress community’s existing metabox frameworks. He created ButterBean because none of them did exactly what he wanted.

“I needed a simple framework for quickly building out a user interface in some of my plugins,” Tadlock said. “I’d already been reusing some code for a while to handle this. So, I decided to rip it out and turn it into a full-fledged framework that both I and others could use. Other frameworks are cool and do a lot of things that I don’t need most of the time. In development, you should always use the best tool for the job.”

Tadlock borrowed some code ideas for the plugin’s media frame from John James Jacoby’s WP Term Images plugin. The tabbed interface design was inspired by WooCommerce. An interactive demo is available on the project page if you want to see how ButterBean’s UI compares to existing solutions.

According to the project’s GitHub page, Tadlock intends to keep it lean and flexible for those who want to bundle ButterBean with their plugins. Now that 1.0 has been released, he plans to roll out more tutorials and documentation in the coming days to help developers get started.

13 Comments


  1. Great approach to metaboxes. I hope to see more usage of this to prevent metabox madness and further declutter the post edit screen.

    Report


  2. Awesome, I’ll have to check this out. I’ve used WP-Alchemy for years, but it’s kinda long in the tooth.

    Report


  3. Wow ! The next level of WordPress Meta box. Just like woo-commerce and it will be great achievement for developers making themes with lots of meta box.

    Report


  4. Using CMB2 since long but this seems very handy in a tiny size.

    Report


  5. Great improvement for postmeta in the backend! Looking forward to seeing more documentation in github on this.

    Report


  6. Thanks for covering this, Sarah.

    I would’ve released sooner, but I put the project on the backburner for most of the 3 months of beta testing to work work on my most recent theme release. It’s actually one of the methods I use to allow my brain to recharge and come back to a project with a fresh perspective. Get 90% or so done. Work on something else for a while. Then, come back and finish.

    There are public JavaScript functions for interacting with ButterBean. This is the part built on top of Backbone.js. This is also a huge milestone for me in development. I’ve never built something in JavaScript meant to be extended. It’s also really nice because with 50 lines or so of code, I can do something like a media modal without having to use jQuery to manipulate the DOM.

    Anyway, I hope folks like it. I’m working on getting started tutorial right now and will get it published shortly.

    Report


    1. This looks very cool. Good work. I can see this being highly useful to many of us.

      PS. On the homepage, “This often a better option than many meta boxes.” I think you left out “is”.

      Report


    2. This looks really promising, Justin. The only problem I see with it is that if it gets popular, we’ll get a lot of clashes between plugins, especially once you iterate through a couple more versions of it. Plugin A would have version 1.0.0, plugin B would have version 1.2.15 etc. Do you have any advice (or a plan) how to deal with that?

      Report


      1. The code itself deals with that. The newest version of the framework always gets loaded.

        Report


      2. Does this mean there will be no breaking changes in ButterBean? Because loading too new a version sometimes might be as bad as loading too old one.

        Report


      3. I won’t go as far as saying that there’ll never be breaking changes in the history of the plugin because I’m not prescient. If I deprecate something in 2016, it probably won’t be supported at all in 2026. I’m not sure what that cut-off point will be for removing deprecated functionality. We’ll cross that bridge when we come to it.

        For the immediate future, the plan is to be backwards compatible.

        The long-term plan is to hope and pray that core WP gets some sort of dependency management built in.

        Report


  7. Thanks for sharing this.

    Pretty much everything that Justin makes is of amazing quality. He has mad skillz with producing top quality WordPress plugins IMHO. I have no doubt that this will be an extremely useful addition to the WordPress community.

    Report


  8. I have integrated ButterBean into my latest project. Awesome! Very similar to the customizer api, and easy to use. Thanks J!

    Report

Comments are closed.