WordPress.org

Make WordPress Core

Opened 2 years ago

Last modified 14 months ago

#24026 new defect (bug)

No /themes/ folder causes strange behaviour

Reported by: slaFFik Owned by:
Milestone: Awaiting Review Priority: normal
Severity: normal Version: 3.1
Component: Themes Keywords:
Focuses: Cc:

Description

I know, that it's a tricky behaviour, but the problem exists.

  1. Unzip WordPress files to appropriate place
  2. Go to /wp-content/ and delete /themes/ folder
  3. Install WordPress using it's wizard (ignore error in Dashboard that no theme activated)
  4. Go to Plugins page in admin area
  5. Install BuddyPress (this plugin register the theme BP Default that is situated in plugin folder - this is very important)
  6. Activate BuddyPress and complete its wizard to make BP functional
  7. Go to Themes page in wp-admin
  8. You will now see BP Default Theme. Try to activate it
  9. Ta-da! You've just unlocked a new badge for catching an error.

Change History (5)

comment:1 @SergeyBiryukov2 years ago

  • Summary changed from No /themes/ folder couses strange behaviour to No /themes/ folder causes strange behaviour
  • Version changed from 3.5.1 to 3.1

Got "Cheatin' uh?" message from wp-admin/themes.php:
http://core.trac.wordpress.org/browser/tags/3.5.1/wp-admin/themes.php#L20

BuddyPress Default theme is correctly registered with /plugins/buddypress/bp-themes as theme root, however wp_get_theme( 'bp-default' ) later looks for WP_CONTENT_DIR . '/themes' instead.

Caused by the early return in get_theme_roots() and get_raw_theme_root():
http://core.trac.wordpress.org/browser/tags/3.5.1/wp-includes/theme.php#L285
http://core.trac.wordpress.org/browser/tags/3.5.1/wp-includes/theme.php#L510

if ( count($wp_theme_directories) <= 1 )
	return '/themes';

Commenting out these lines in both functions allowed me to activate BuddyPress Default theme.

Introduced in [15641], corrected in [16424]. It assumes that if there's only one theme directory, it's wp-content/themes. According to the ticket description, this assumption isn't always correct, although it's probably an edge case.

Reproduced in 3.1 as well. There was no "Cheatin' uh?" message (it was introduced later in [21010]), however validate_current_theme() still failed, and the theme could not be activated:
http://core.trac.wordpress.org/browser/tags/3.1/wp-admin/themes.php#L60

comment:2 @aniketpant2 years ago

  • Cc me@… added

comment:3 @nacin18 months ago

  • Keywords close added

Duplicate of #11282, I think.

comment:4 @SergeyBiryukov18 months ago

  • Keywords close removed

Related, but not exactly a duplicate.

comment:5 @SergeyBiryukov14 months ago

#28263 was marked as a duplicate.

Note: See TracTickets for help on using tickets.