[theme-reviewers] WP_DEBUG notices with the_widget()
Justin Tadlock
justin at justintadlock.com
Wed Feb 22 20:59:40 UTC 2012
It's a pretty rare occurrence because no one's ever mentioned it, but it
something that should definitely be cleaned up.
I could see this being problematic with any theme that creates custom
widgets. Outside of WP_DEBUG issues, it doesn't sound like a great user
experience if the widget options aren't being saved.
On 2/22/2012 2:22 PM, Sayontan Sinha wrote:
> Justin,
> I did notice this problem with your theme earlier, and IIRC it can be
> replicated even in a dynamic sidebar. Here is how I could replicate it:
>
> 1. Assume I am running version x of your theme. I have some widgets
> that I have added to the sidebar.
> 2. I then switch to another theme. Obviously your widgets don't exist
> there, so I add this new theme's widgets.
> 3. Now, you release version x+1 of your theme. When I activate it, I
> see the old Hybrid widgets I had added in the "Inactive Widgets" area.
> 4. So I drag those widgets from my "Inactive Widgets" to the
> sidebars. This means I don't have to save anything on the sidebar:
> not even the old widgets. Following this if I refresh the
> front-end I get a bunch of notices.
>
> I haven't tried this recently, so I am not sure if the problem can be
> replicated in this manner.
>
> Sayontan.
>
> On Wed, Feb 22, 2012 at 12:07 PM, Justin Tadlock
> <justin at justintadlock.com <mailto:justin at justintadlock.com>> wrote:
>
> One thing I recently noticed with my themes that have widgets is
> that I get some undefined index/variable notices when using
> the_widget() function to output a widget created by my theme.
> This wouldn't show up unless someone actually used the_widget()
> function. Using it as a regular widget in a dynamic sidebar is
> fine because the variables always get set on widget save.
>
> This issue arises when you're building a widget with options.
> Typically, you'd grab these options from the $instance parameter
> for the widget() method. When calling the_widget(
> 'My_Widget_Class' ); in my theme, WP_DEBUG goes crazy. The
> problem is simply that there's no checks if
> $instance['some_option'] has been set.
>
> I'm going through all my widgets right now to update them for this
> use case. I don't think it's overly important because it's a
> pretty rare scenario and definitely one you wouldn't notice in a
> typical review, but I thought I'd post it here for you all.
>
> _______________________________________________
> theme-reviewers mailing list
> theme-reviewers at lists.wordpress.org
> <mailto:theme-reviewers at lists.wordpress.org>
> http://lists.wordpress.org/mailman/listinfo/theme-reviewers
>
>
>
>
> --
> Sayontan Sinha
> http://mynethome.net | http://mynethome.net/blog
> --
> Beating Australia in Cricket is like killing a celebrity. The death
> gets more coverage than the crime.
>
>
>
> _______________________________________________
> theme-reviewers mailing list
> theme-reviewers at lists.wordpress.org
> http://lists.wordpress.org/mailman/listinfo/theme-reviewers
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.wordpress.org/pipermail/theme-reviewers/attachments/20120222/62855052/attachment.htm>
More information about the theme-reviewers
mailing list