westi
cd8c0e74ab
Restore the 'extra_theme_headers' filter in the deprecated get_theme_data function so that plugins/themes using this function can still access their extra headers.
...
Fixes #20897 props nacin, georgestephanis, SergeyBiryukov.
git-svn-id: http://core.svn.wordpress.org/trunk@21050 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-06-11 17:30:57 +00:00
nacin
9355ae1abe
WP_Theme: If no 'Domain Path' header is specified, default to looking in the /languages directory. see #20103 , see #20448 .
...
git-svn-id: http://core.svn.wordpress.org/trunk@20945 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-05-27 16:42:38 +00:00
ryan
8c114f0c54
Pinking shears
...
git-svn-id: http://core.svn.wordpress.org/trunk@20715 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-05-03 16:41:59 +00:00
nacin
81861e8cf8
Don't try to translate tags in WP_Theme::translate_header() if we are not in the admin and get_theme_feature_list() isn't defined. see #20103 .
...
git-svn-id: http://svn.automattic.com/wordpress/trunk@20668 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-05-01 18:02:40 +00:00
nacin
69e0af9e3c
Remove support from WP_Theme for multiple screenshots until we bring it to the UI. fixes #20546 .
...
git-svn-id: http://svn.automattic.com/wordpress/trunk@20590 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-04-25 17:40:43 +00:00
nacin
1e500bd76a
Remove WP_Theme::is_child_theme() in favor of WP_Theme::parent(). see #20546 .
...
git-svn-id: http://svn.automattic.com/wordpress/trunk@20589 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-04-25 17:34:19 +00:00
nacin
efcaf98c41
Make WP_Theme::get_files() a general method for retrieving any file types, at any depth, optionally to include parent files. see #20546 .
...
git-svn-id: http://svn.automattic.com/wordpress/trunk@20588 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-04-25 17:31:39 +00:00
nacin
c1e2962573
Documentation and visibility cleanups in WP_Theme.
...
* Declare `__toString()` as public.
* Use parent() and error() internally, rather than the properties.
* Add and correct inline documentation throughout.
* Attempt to clarify that display() is superior to get().
see #20546 , see #20103 .
git-svn-id: http://svn.automattic.com/wordpress/trunk@20586 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-04-25 16:37:49 +00:00
nacin
bd7ad45234
Add arrays together in WP_Theme::get_allowed() to preserve keys (theme names could be numeric). props ocean90, fixes #15306 .
...
git-svn-id: http://svn.automattic.com/wordpress/trunk@20481 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-04-16 18:37:57 +00:00
nacin
aee5f09ca2
Child theme files need to override parent theme files. The array_merge() arguments are swapped. see #20103 .
...
git-svn-id: http://svn.automattic.com/wordpress/trunk@20374 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-04-05 20:36:34 +00:00
nacin
70aa7f9607
Clear theme cache after editing. Reduce default cache persistence to 1800. (Could go lower.) see #20331 .
...
git-svn-id: http://svn.automattic.com/wordpress/trunk@20328 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-03-30 14:39:05 +00:00
nacin
9305155baf
Set WP_Theme::scandir()'s default depth to 0 (flat), as intended. Cache untranslated page template names. Properly merge in a parent theme's templates when dealing with cached values. Always look one level deep for WP_Theme->get_files() regardless of file type. see #20103 . see #11216 .
...
git-svn-id: http://svn.automattic.com/wordpress/trunk@20327 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-03-30 14:06:33 +00:00
nacin
07c5c0784e
Correct docs for WP_Theme scandir(), _name_sort(), and _name_sort_i18n() methods. All of them are private. see #11216 , #20103 .
...
git-svn-id: http://svn.automattic.com/wordpress/trunk@20324 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-03-29 18:49:50 +00:00
nacin
7ddbabb3db
Support page templates located in a subdirectory of the theme. fixes #11216 .
...
git-svn-id: http://svn.automattic.com/wordpress/trunk@20318 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-03-29 05:39:26 +00:00
nacin
7c8c385a3c
Use new scandir() return value (key is path relative to theme, value is absolute path) in WP_Theme->get_page_templates(). Use parent()->get_page_templates() and merge in a parent's page templates, rather than extra logic. see [20312], see #20103 .
...
git-svn-id: http://svn.automattic.com/wordpress/trunk@20317 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-03-29 05:37:37 +00:00
nacin
02979900ea
Correct the values for theme_root and stylesheet when the values passed to the WP_Theme constructor have a directory appended to the theme root when it should actually be prepended to the stylesheet (when the theme is in a directory of themes inside a theme root). see #20313 .
...
git-svn-id: http://svn.automattic.com/wordpress/trunk@20316 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-03-29 04:29:58 +00:00
nacin
5b8037afe6
Always set WP_Theme->template even when there is an error and we have no idea what the template is. (Assume it is the stylesheet.) Prevents a number of issues including WP_Theme->is_child_theme() lying. Tidy the theme editor for broken themes and themes with no templates (PHP files), or no template (parent), or are broken. Allow broken themes to be edited. see #20103 .
...
git-svn-id: http://svn.automattic.com/wordpress/trunk@20315 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-03-29 04:16:17 +00:00
nacin
bb4cca4c55
Introduce WP_Theme->exists() to check if the queried theme actually exists. WP_Theme->exists() is a subset of errors() -- a theme with errors may still exist, but a theme that does not exist has an error of theme_not_found. wp_get_theme() now returns false if the theme does not exist. Improve scandir() and get_files() logic. see #20103 .
...
git-svn-id: http://svn.automattic.com/wordpress/trunk@20312 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-03-29 02:59:48 +00:00
nacin
dc0d6805be
Sanitize Theme URI and Author URI in WP_Theme with esc_url_raw. Escape with esc_url on display. see #20103 .
...
git-svn-id: http://svn.automattic.com/wordpress/trunk@20233 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-03-21 14:51:10 +00:00
nacin
962fae26f4
Updates to WP_Theme, wp_get_themes(), and related deprecated functions, after [UT570] [UT578] [UT579]. see #20103 .
...
* ['Template Files'] and ['Stylesheet Files'] need to return files from the parent theme as well.
* Don't strip links from the Author header. Some themes rely on the previous behavior, such as to link multiple authors (Sandbox, for example.) Don't restore links to the Name, that's just a bad idea.
* Ensure we are always passing around arrays in get_files/scandir.
* Better inline doc for wp_get_themes() arguments.
* Introduce a 'force' flag for search_theme_directories() to re-scan, rather than return the cache. We will use this to re-build the theme_roots transient in get_theme_roots(), but it is more helpful for unit tests. Since search_theme_directories() is cached, don't cache again in wp_get_themes(). (Again benefits testing.)
* Handle duplicate theme names in the old get_themes() when two themes match (and neither are a default theme, which is already handled). wp_get_themes() will consider both names to be the same; this is just for back compat since get_themes() is keyed by name.
* Include an old array key in wp_broken_themes().
git-svn-id: http://svn.automattic.com/wordpress/trunk@20193 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-03-15 15:39:21 +00:00
nacin
24cbb5d9c6
Hash WP_Theme cache keys to ensure long file paths don't overflow in object backends. see #20103 .
...
git-svn-id: http://svn.automattic.com/wordpress/trunk@20176 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-03-14 22:49:36 +00:00
nacin
feb1697b7a
The default value of a theme's Status header is 'publish', not 'public'. see #20103 .
...
git-svn-id: http://svn.automattic.com/wordpress/trunk@20173 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-03-14 13:37:49 +00:00
nacin
ead3f2f435
Pass WP_Theme->get_theme_root_uri() to get_theme_root_uri(), thereby always triggering the theme_root_uri filter. see #20103 .
...
git-svn-id: http://svn.automattic.com/wordpress/trunk@20162 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-03-08 18:18:10 +00:00
nacin
2a6b9ea6db
The allowed_themes rolling upgrade for individual sites should not add empty allowedthemes arrays. If there are no allowed themes, don't add an empty option. Move the network rolling upgrade to upgrade_network(). see #20146 .
...
git-svn-id: http://svn.automattic.com/wordpress/trunk@20148 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-03-08 03:22:39 +00:00
nacin
e59777059b
On display, replace an empty Theme Name with the theme's directory. see #20103 .
...
git-svn-id: http://svn.automattic.com/wordpress/trunk@20146 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-03-07 23:56:35 +00:00
nacin
6d7522917d
Only update the old allowed_themes network option from the main site admin or in the network admin. see #20103 , #20146 .
...
git-svn-id: http://svn.automattic.com/wordpress/trunk@20145 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-03-07 23:39:56 +00:00
nacin
4029d120a2
Provide back compat for allowed_themes option keys, which were from the early days of WordPress MU. see #20103 . Curses.
...
git-svn-id: http://svn.automattic.com/wordpress/trunk@20144 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-03-07 23:32:06 +00:00
nacin
19b1746cc6
Fetch the raw 'Template' header in the WP_Theme constructor. By passing sanitization routines (which are unnecessary for this header), we prevent a persistent themes cache from sanitizing the headers of every theme until/unless they actually need a real header like Name. Note that if WP_Theme was instantiated through get_themes(), this will have no effect, as get_themes() does ask for Name for the keys to return. see #20103 .
...
git-svn-id: http://svn.automattic.com/wordpress/trunk@20132 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-03-07 00:24:23 +00:00
nacin
820ebbab9e
Fix variable collision in WP_Theme->get() that rears its head when the themes bucket is cached persistently. Also correct the inline doc. see #20103 .
...
git-svn-id: http://svn.automattic.com/wordpress/trunk@20126 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-03-06 22:28:53 +00:00
nacin
08a7de8ab1
Default themes always trump their pretenders. Even though we are no longer keying by name, it is not a good experience to see multiple 'WordPress Default' themes when one was copied and had the directory renamed. This also keeps with the behavior of get_themes() (and the deprecated return value). see #20103 .
...
Allow a default theme within a directory of wp-content/themes (e.g. 'somedir/twentyeleven') to be identified as a default theme.
git-svn-id: http://svn.automattic.com/wordpress/trunk@20119 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-03-06 01:59:50 +00:00
nacin
1b84ec82cb
Provide back compat for $theme->$var where $theme was an array from get_themes() but cast to an object, as had occurred in get_theme_updaes(). see #20173 . see #20103 .
...
git-svn-id: http://svn.automattic.com/wordpress/trunk@20112 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-03-04 12:58:41 +00:00
nacin
c973568e76
Allow get_screenshots() to return absolute URLs. Make this the default; relative can be achieved with 'relative' as the argument. see #20103 .
...
git-svn-id: http://svn.automattic.com/wordpress/trunk@20105 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-03-04 01:16:32 +00:00
nacin
a48a695ba7
Use correct variable; return correct value for get_screenshot() when value is uncached. see #20103 .
...
git-svn-id: http://svn.automattic.com/wordpress/trunk@20045 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-02-29 20:46:41 +00:00
nacin
8570f2dcd2
Remove debug cruft. see #20103 .
...
git-svn-id: http://svn.automattic.com/wordpress/trunk@20044 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-02-29 20:41:01 +00:00
nacin
8ba92a52f8
Have WP_Theme::get_screenshot() default to an absolute URI. Allow 'relative' to be requested. see #20103 , see #19816 .
...
git-svn-id: http://svn.automattic.com/wordpress/trunk@20043 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-02-29 20:31:56 +00:00
nacin
0dc52c8043
Translate page template names! Have WP_Theme::get_page_templates() return templates keyed by filename, not by template name, as it makes more sense. Flip this in get_page_templates() to be compatible. fixes #6007 .
...
git-svn-id: http://svn.automattic.com/wordpress/trunk@20041 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-02-29 20:18:53 +00:00
nacin
bf97881f98
(string) WP_Theme is now the theme name, translated. Good replacement for get_current_theme(); better than wp_get_theme()->display('Name'). see #20103 , see #20138 .
...
git-svn-id: http://svn.automattic.com/wordpress/trunk@20039 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-02-29 19:27:54 +00:00
nacin
d130a63e25
Introduce WP_Theme, wp_get_themes(), and wp_get_theme() to replace get_themes(), get_theme(), get_theme_data(), current_theme_info(), and others.
...
* Getters and Helpers: Introduces a series of methods to allow for easy generation of headers for display, and other theme metadata, including page templates.
* Screenshots: Handles support for multiple screenshots. (see # Additional screenshots must be PNG and start with screenshot-2.png, and be sequential to be counted. see #19816 .
* Error Handling: Broken themes have a WP_Error object attached to them.
* Caching: Introduces a wp_cache_themes_persistently filter (also in [20020]) to enable persistent caching of all filesystem and sanitization operations normally handled by WP_Theme (and formerly get_file_data() and get_themes()). Themes are cached individually and across five different cache keys for different data pieces.
* Compatibility: A WP_Theme object is backwards compatible with a theme's array formerly returned by get_themes() and get_theme(), and an stdClass object formerly returned by current_theme_info().
* i18n/L10n: Theme headers are now localizable with proper Text Domain and Domain Path headers, like plugins. (Language packs may remove the requirement for headers.) For page templates, see #6007 (not fixed yet, but will be easy now). For headers, fixes #15858 .
* PHP and CSS files: New methods that fetch a list of theme files (for the theme editor) only on demand, rather than only loading them into memory. fixes #11214 .
Functions deprecated:
* get_themes(), get_allowed_themes() and get_broken_themes() -- use wp_get_themes()
* get_theme() and current_theme_info() -- use wp_get_theme()
* get_site_allowed_themes() -- use WP_Theme::get_allowed_on_network()
* wpmu_get_blog_allowedthemes() -- use WP_theme::get_allowed_on_site()
see also [20016], [20018], [20019], [20020], [20021], [20022], [20025], [20026], [20027]. also fixes #19244 .
see #20103 .
git-svn-id: http://svn.automattic.com/wordpress/trunk@20029 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2012-02-28 21:24:44 +00:00