Opened 2 years ago

Closed 20 months ago

Last modified 20 months ago

#16761 closed defect (bug) (fixed)

php notices with the_widget().

Reported by: mfields Owned by: nacin
Priority: normal Milestone: 3.3
Component: Widgets Version:
Severity: normal Keywords: has-patch
Cc: michael@…

Description

the_widget() generates php notices when not passed $args and $instance parameters. To my knowledge these parameters are intended to be optional. To reproduce:

  1. Define WP_DEBUG as true in wp_config.php
  2. Please the following code in any template file in your active theme:
<?php
	the_widget( 'WP_Widget_Archives' );
	the_widget( 'WP_Widget_Calendar' );
	the_widget( 'WP_Widget_Categories' );
	the_widget( 'WP_Nav_Menu_Widget' );
	the_widget( 'WP_Widget_Links' );
	the_widget( 'WP_Widget_Meta' );
	the_widget( 'WP_Widget_Pages' );
	the_widget( 'WP_Widget_Recent_Comments' );
	the_widget( 'WP_Widget_Recent_Posts' );
	the_widget( 'WP_Widget_RSS' );
	the_widget( 'WP_Widget_Search' );
	the_widget( 'WP_Widget_Tag_Cloud' );
	the_widget( 'WP_Widget_Text' );
?>

I have attached a patch that I believe eliminates all notices. Please let me know your thoughts.

Attachments (2)

16761.patch (5.7 KB) - added by mfields 2 years ago.
Fixes notices in widgets.
16761.2.patch (4.9 KB) - added by SergeyBiryukov 21 months ago.

Download all attachments as: .zip

Change History (14)

mfields2 years ago

Fixes notices in widgets.

  • Milestone changed from Awaiting Review to 3.2
  • Owner set to nacin
  • Status changed from new to accepted

It seems like even an empty title should be passed through the widget_title filter.

Good call. I think you're totally right about this.

comment:4 follow-up: ↓ 9   westi2 years ago

I'm not sure that these are really widget bugs.

If these notices only show when widgets are loaded via the_widget then it may be because these items are required configuration for the widget that the theme should be providing.

If we do make the changes here we can revert - [17672]

comment:5   ryan2 years ago

  • Milestone changed from 3.2 to Future Release

#16281

#16131 is not included in this patch, if it's in we can close it too.

comment:9 in reply to: ↑ 4   SergeyBiryukov21 months ago

  • Milestone changed from Future Release to 3.3

Replying to westi:

If these notices only show when widgets are loaded via the_widget then it may be because these items are required configuration for the widget that the theme should be providing.

Most of these widgets have default configurations and should fall back to them properly.
As I mentioned in #18595, Google shows a lot of results with these notices, so it would be nice to fix them.

Refreshed the patch for 3.3.

Last edited 21 months ago by SergeyBiryukov (previous) (diff)
  • Resolution set to fixed
  • Status changed from accepted to closed

In [18676]:

Fix Notices in default Widgets when called using the_widget(). Fixes #16761 props mfields and SergeyBiryukov

In [18677]:

Set a consistent cache key when using the_widget to display the Recent Posts and Recent Comments widgets so that they get cached. See #16761.

Related #16159.

The "Rrecentet Post widdet" and the "Recentet Comments widdet" has no args filters.

Version 0, edited 20 months ago by ramiy (next)
Note: See TracTickets for help on using tickets.