A new take on Sidebar management: save widgets as menus

If you experiment with themes, or switch themes often, you’ve probably experimented problems with widgets: you had lots of them in your sidebar, and they all get dragged into the “inactive” zone of your Widgets page. And you have to drag them back to your new widget area. Painful, especially when you have a lot of different widget areas.

Luckily, the core team decided to address the issue, and thanks to the ticket #17979 (quite an active ticket by the way!), widgets now get saved between themes. But why not push that idea further, and change a bit the way widgets are organized today?

Widget sidebars as menus, the Ipstenu way

Mika demonstrated with a series of 3 posts that we could improve the current widget system by completely revisting it, and handle WP sidebars like we manage menus today.

Widgets as menus

I like the idea because people might view widgets differently. It also makes it easier to manage multiple sidebar areas, so more flexibility in themes in the future.

Besides, I was never a big found of the drag-and-drop thing: it works great, but it is a bit annoying to use when some widgets are expanded, or when you registered a lot of different sidebars. I used to combine sidebars and conditional tags to be able to have different sidebars on different pages, and that quickly becomes quite a mess. Sure, you have a title and a description for each widget area, but the widgets page quickly gets incredibly long.

By viewing each sidebar in a different tab, we would avoid such issues. And by viewing available widgets in a checkbox list, it allows you to quickly browse and find the widgets you are looking for.

register_sidebar elements as options

I would like to add one more option to this Widgets page. This option would not be displayed by default, you could activate it through the screen options, and once you did, you would have access to the different elements associated with that widget area:

  • before_title
  • after_title
  • before_widget
  • after_widget
These elements could only be modified by admins, and could allow you to make deeper changes to your widgets directly from the admin, like you can do today with the additional attributes (css class, rel attributes) in the Menus interface.
Advanced menu options

One place to find them, One place to bring them all and in the darkness bind them

Today, if you are looking for new widgets, you look for it in the plugin repo: it is handy, there is a tag for it, and you can easily add them directly from your WordPress plugin page. But what if we push the concept a bit further? Mika proposed an area where all your available widgets would be listed. I think it would be great to have one more area, where you could search for available widgets in the plugin repo.

The problem is that many widgets are actually binded to a theme or a plugin, so you couldn’t list all widgets available for download there, but I think that would still be quite useful. Of course, that also means that some clean-up would have to be done in the repo. But Otto is working on that…

And you, what do you think about the widgets management today? Are you happy with it? Do you have any ideas to improve them?

For further reading and experiments

2 replies on “A new take on Sidebar management: save widgets as menus”

Paul Eline says:

I’ll definitely try it out.

Helmar says:

I would love this kind of functionality. Looks much cleaner to me than the current widget system. Well done!