[wp-trac] [WordPress Trac] #53949: WP_Media_List_Table::prepare_items(): fix PHP warning

WordPress Trac noreply at wordpress.org
Wed Aug 18 02:55:09 UTC 2021


#53949: WP_Media_List_Table::prepare_items(): fix PHP warning
----------------------------+--------------------------------------
 Reporter:  jrf             |      Owner:  (none)
     Type:  defect (bug)    |     Status:  new
 Priority:  normal          |  Milestone:  5.9
Component:  Administration  |    Version:
 Severity:  normal          |   Keywords:  has-patch has-unit-tests
  Focuses:                  |
----------------------------+--------------------------------------
 The following warnings could, in very select circumstances, be shown when
 the `WP_Media_List_Table::prepare_items()` method is called:

 {{{
 // PHP 8.0 and higher:
 Warning: foreach() argument must be of type array|object, bool given

 // PHP 5.6 - 7.4
 Warning: Invalid argument supplied for foreach()
 }}}


 In `WP_Media_List_Table::prepare_items()`, the cron info array is
 retrieved via a call to `_get_cron_array()`, but as the documentation for
 that function (correctly) states, the return type of that function is
 `array|false`, where `false` is returned for a site, where no cron jobs
 have been scheduled (yet).

 However, no type check is done on the return value and the method just
 blindly continues by using the return value in a `foreach`.

 Fixed by adding validation for the returned value from `_get_cron_array()`
 and only running the `foreach` when the returned value is an array.

 Ref: https://developer.wordpress.org/reference/functions/_get_cron_array/

-- 
Ticket URL: <https://core.trac.wordpress.org/ticket/53949>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform


More information about the wp-trac mailing list