Opened 3 years ago
Last modified 5 weeks ago
#53677 new defect (bug)
load_script_textdomain() doesn't work for subdirectory themes, or those in alternate theme roots
Reported by: | dd32 | Owned by: | |
---|---|---|---|
Milestone: | Future Release | Priority: | low |
Severity: | normal | Version: | |
Component: | I18N | Keywords: | needs-patch |
Focuses: | javascript | Cc: |
Description
load_script_textdomain() attempts to load script translations for themes, but fails to generate the correct relative filename when the theme is within a sub-directory or alternate theme root.
WordPress supports three main formats for theme directories (See search_theme_directories())
- wp-content/themes/$theme
- wp-content/custom-theme-root/$theme
- wp-content/themes/a-directory-of-themes/$theme (and likewise for the custom $theme_root)
The first case is covered, but when using the other two, the generated relative path and subsequent path md5 is incorrect.
For example, given the file .../themes/a-directory-of-themes/$theme/build/index.min.js
instead of generating the md5 of build/index.js
it generates it of $theme/build/index.js
.
I'm unsure what it would do with the custom theme roots, all that I can tell is that the use-case doesn't appear to be covered in the function.
See https://meta.trac.wordpress.org/browser/sites/trunk/wordpress.org/public_html/wp-content/mu-plugins/pub/hotfix-53677.php which is a hotfix plugin I've added to WordPress.org to allow it to work for our use-case of
wp-content/themes/pub/$theme/$file