I have multiple “sidebars”, but not all of them are the same size. Not all widgets fit in all sidebars (for example, I have a “footer sidebar” where the client can place custom widgets, but they are wide, and don’t fit at all in the “real” sidebar). I want to give an indication when a widget is placed in a sidebar where it would not belong (change the header text color, for example). What would be the best way to do this?
Leave a Reply
You must be logged in to post a comment.
There is a widget_display_callback hook, which you can use to override the widget based on the sidebar and the widget (return false when inappropriate):
http://core.trac.wordpress.org/browser/trunk/wp-includes/widgets.php?rev=15590#L180
I solved it using some CSS, similar to my trick to highlight my own widgets. The sidebar drop areas are
div
‘s with the classwidgets-sortable
and they have theid
of your sidebar. Your widgets arediv
‘s with classwidget
, and andid
of the formwidget-[global_counter]_[widget_key]-[widget_id]
. You can combine these to highlight correct or wrong combinations.For example, I have a sidebar called
footer
that should only contain wide widgets. These widgets are recognizable because their ID includes-wide-
. I want these in green, and all other ones in red with a strike through.I’d probably define my own widget areas that get whatever widgets are put into it in the admin area, and only put that widget area in a specific location in the theme.