Opened 13 years ago
Closed 13 years ago
#24639 closed defect (bug) (fixed)
search_theme_directories returns nothing if scandir() returns FALSE
| Reported by: | csixty4 | Owned by: | nacin |
|---|---|---|---|
| Priority: | normal | Milestone: | 3.7 |
| Component: | Themes | Version: | 3.6 |
| Severity: | normal | Keywords: | has-patch commit 3.7-early |
| Cc: | Focuses: |
Description
I'm experimenting with ways to detect themes & plugins WordPress can't upgrade automatically, and found that wp_get_themes() (wp-includes/theme.php) returns an empty array if one of the theme directories is unreadable (chmod 770, neither owner or group exist).
Currently, the search_theme_directories() function returns false if any scandir() calls return false. Shouldn't it return a list of valid themes it can access, ignoring the ones it can't?
The attached patch issues a "continue" statement if scandir() returns false, so at least some information is returned. It isn't enough to help me detect those cases where a theme can't be updated, but it's probably more useful for people who need a list of themes.
Attachments (2)
Change History (7)
#1
@
13 years ago
I wrote this code, and yes, this is a good change. Maybe we should do a trigger_error() with E_USER_NOTICE whenever we can't read a directory we're supposedly to read?
#2
@
13 years ago
Thanks! The patch works for me, and I should be able to intercept that notice with an error_handler. That's better than I was hoping for.
![(please configure the [header_logo] section in trac.ini)](/chrome/site/your_project_logo.png)
continue instead of returning false when scandir() returns false