[wp-hackers] Safe location for "fallback" theme
peter.westwood at ftwr.co.uk
Wed Apr 21 07:03:09 UTC 2010
On 20 Apr 2010, at 20:03, Stephen Rider wrote:
> I came across an issue today, and after finally figuring out the problem I thought I'd run this past y'all. Needs a code fix, IMO.
> I installed a new WordPress site, went into admin and started configuring settings. After a bit I popped over to the main site URL to see how it was all looking.
> Blank page.
> Huh. That's weird. I thought it might be something to do with my putting the WordPress files in their own directory, so I monkeyed with that for a while. No dice. Checking database settings, the SiteURL setting, etc. No luck.
> Finally I discovered that the problem was that the "default" theme was not in the theme directory (long story short: there was a filter set in the FTP program). The site was set to "Default" theme, but the theme was missing. Because "Default" is the fallback theme if a theme is missing, it was falling back on its own nonexistent self and thus showing a blank page.
> I have a plugin that makes pull-quotes, and in coding the "style" functionality therein, I came across the same issues regarding fallback, and here is the solution that I finally implemented there:
> 1) Theme directory has default theme and whatever else comes with the system.
> 2) A complete second copy of the default theme exists in a completely different location not likely to be modified by user (/wp-includes perhaps?)
> 3) The "hidden" copy is the ultimate fallback. If a selected theme is missing, fall back to the "default" in the theme directory. If THAT is missing, fall back to the hidden "safe copy" of the default theme.
> I can readily see a site owner removing the default theme, and then being lost if there is a problem with the theme he's using. I think this would be a worthwhile addition to the core.
> What say you all?
This is the /standard/ behaviour if you delete your theme - whatever your theme is and has been for a while
From memory we ended up with this because in the past we used to auto-switch to the /default/ theme when we couldn't find the theme folder on the disk unfortunately this had the behaviour on a number of hosts (I think where NFS is involved) of randomly switching peoples themes back to /default/ which is definitely not desirable.
We shouldn't be moving / duplicating the current fallback theme and don't forget it doesn't have to be twentyten - see WP_FALLBACK_THEME and validate_current_theme()
What we could and maybe should do is display a (possibly customisable) error page if we can't find the current theme on the front-end - this could then provide you with a link to the Themes section in the Administration to allow you to go and fix the issue
http://blog.ftwr.co.uk | http://westi.wordpress.com
C53C F8FC 8796 8508 88D6 C950 54F4 5DCD A834 01C5
More information about the wp-hackers