WordPress.org

Make WordPress Core

Opened 2 years ago

Closed 20 months ago

Last modified 20 months ago

#40820 closed defect (bug) (fixed)

Child theme should appear as broken if parent is itself

Reported by: davilera Owned by: swissspidy
Milestone: 4.9 Priority: normal
Severity: minor Version: 4.7.5
Component: Themes Keywords: has-patch has-unit-tests
Focuses: Cc:

Description

Child themes are defined as such if they include the Template header in style.css. In general, if the parent template can't be found, WordPress reports the theme as Broken and tells the user to install the missing parent theme.

However, if the Template header is the theme itself, no errors are reported (WordPress can find the "parent" theme, because it's itself). The resulting behavior is weird and unexpected:

  • If there are other themes available, WordPress uses one as the parent theme (I don't know which criteria is used for selecting one or the other).
  • If there aren't, the front-end is completely blank (but this might depend on the amount of code included in the child theme).

Such an (invalid) child theme should be reported as Broken. For instance, the following message could be shown: The theme defines itself as its parent theme. Please fix the "Template" header.

Attachments (3)

40820_fix_proposal.diff (840 bytes) - added by davilera 2 years ago.
Adds an extra check to make sure that the parent theme of a child theme is not the child theme itself.
40820.diff (2.2 KB) - added by davilera 2 years ago.
40820.2.diff (2.7 KB) - added by swissspidy 20 months ago.

Download all attachments as: .zip

Change History (12)

@davilera
2 years ago

Adds an extra check to make sure that the parent theme of a child theme is not the child theme itself.

#1 @davilera
2 years ago

  • Keywords has-patch needs-testing added
  • Resolution set to invalid
  • Severity changed from normal to minor
  • Status changed from new to closed

#2 @davilera
2 years ago

  • Resolution invalid deleted
  • Status changed from closed to reopened

@davilera
2 years ago

#3 @davilera
2 years ago

  • Focuses template removed
  • Keywords has-unit-tests added

I just uploaded a new patch 40820.diff along with a Unit Test.

#4 @swissspidy
2 years ago

  • Owner set to swissspidy
  • Status changed from reopened to reviewing

#5 @swissspidy
2 years ago

  • Keywords needs-testing removed
  • Milestone changed from Awaiting Review to 4.9

40820.2.diff is an updated patch that adjusts other theme unit tests because of that new test theme.

@swissspidy
20 months ago

#6 @swissspidy
20 months ago

  • Resolution set to fixed
  • Status changed from reviewing to closed

In 41601:

Themes: Report theme as broken that sets itself as its parent.

Props davilera.
Fixes #40820.

#7 @obenland
20 months ago

@swissspidy What do you think about setting Template in <code> tags?

#8 @swissspidy
20 months ago

In 41607:

Themes: Adjust translated string after [41601].

Props obenland.
See #40820.

#9 @swissspidy
20 months ago

In 41610:

Themes: Adjust unit test after [41607].

Props ocean90.
See #40820.

Note: See TracTickets for help on using tickets.