[wp-trac] [WordPress Trac] #55121: classic widgets with no settings won't show up in 5.9

WordPress Trac noreply at wordpress.org
Thu Feb 10 22:41:41 UTC 2022

#55121: classic widgets with no settings won't show up in 5.9
 Reporter:  joncampbell     |       Owner:  (none)
     Type:  defect (bug)    |      Status:  closed
 Priority:  normal          |   Milestone:
Component:  Widgets         |     Version:  5.9
 Severity:  normal          |  Resolution:  invalid
 Keywords:  has-patch php8  |     Focuses:

Comment (by peterwilsoncc):

 > So realistically there are less than 6000 sites affected and of those,
 most won't be running PHP > 7.4.

 This is incorrect. As I mentioned, it's not possible for searches on
 wpdirectory.net to include line breaks so it is likely there is a greater
 number of sites affected.

 > WordPress should not cater or facilitate unlimitedly to plugins doing it
 wrong. IMO with this now being a fatal error in PHP 8.0, there is now a
 good argument to change it back to isset().

 I fundamentally disagree with this comment:

 * I disagree with both the assertion and the phrasing the plugins were
 ''doing it wrong''. The use of `array_key_exists()` was specifically to
 cater for this circumstance. Suboptimal, maybe, but certainly not wrong
 (whatever that means).
 * WordPress's often stated goal is to maintain backward compatibility. As
 PHP becomes stricter about type this isn't always possible but where
 possible WP should do so. The compatibility break with switch to `isset()`
 in this code is a developer convenience rather than a necessity.

 > This error then, can only ever occur if a plugin/theme would overload
 the Widget::get_settings() method and doesn't have the same safeguards in

 I agree this is something WP probably doesn't need to account for.

Ticket URL: <https://core.trac.wordpress.org/ticket/55121#comment:14>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform

More information about the wp-trac mailing list