WordPress.org

Make WordPress Core

Opened 17 months ago

Last modified 12 months ago

#39860 new defect (bug)

Multiple Themes: Check for WP_Error before outputting `get_the_tag_list()`

Reported by: sixhours Owned by:
Milestone: Future Release Priority: normal
Severity: normal Version:
Component: Bundled Theme Keywords: has-patch needs-testing
Focuses: Cc:

Description

We've seen this error pop up on WordPress.com for multiple _s-based and default themes:

Catchable fatal error - Object of class WP_Error could not be converted to string

This happens because get_the_tag_list() can return an object of WP_Error and the theme doesn't account for it. Core handles it gracefully if the theme uses the_tags() instead.

Affected themes:

  • Twenty Seventeen
  • Twenty Fifteen
  • Twenty Thirteen
  • Twenty Twelve
  • Twenty Eleven
  • Twenty Ten

I propose we patch these to account for WP_Error. Two possible solutions:

  1. If echoing the output, switch to the_tags().
  2. If returning the tags list, add a catch for is_wp_error() in the function to avoid the fatal error.

I'll add some patches to get this started.

Attachments (4)

twentyfifteen.diff (685 bytes) - added by sixhours 17 months ago.
Check for is_wp_error() before outputting get_the_tag_list() in Twenty Fifteen
twentyseventeen.diff (841 bytes) - added by sixhours 17 months ago.
Check for is_wp_error() before outputting get_the_tag_list() in Twenty Seventeen
twentyten.diff (865 bytes) - added by sixhours 17 months ago.
Check for is_wp_error() before outputting get_the_tag_list() in Twenty Ten
39860.1.patch (3.0 KB) - added by davidakennedy 12 months ago.
Check for is_wp_error() before outputting get_the_tag_list().

Download all attachments as: .zip

Change History (9)

@sixhours
17 months ago

Check for is_wp_error() before outputting get_the_tag_list() in Twenty Fifteen

@sixhours
17 months ago

Check for is_wp_error() before outputting get_the_tag_list() in Twenty Seventeen

@sixhours
17 months ago

Check for is_wp_error() before outputting get_the_tag_list() in Twenty Ten

#1 @sixhours
17 months ago

Twenty Sixteen is also affected; I opened a PR: https://github.com/WordPress/twentysixteen/pull/496

#2 @swissspidy
16 months ago

  • Keywords has-patch needs-testing added
  • Version trunk deleted

This ticket was mentioned in Slack in #core-themes by obenland. View the logs.


15 months ago

@davidakennedy
12 months ago

Check for is_wp_error() before outputting get_the_tag_list().

#4 @davidakennedy
12 months ago

I combined the patches from @sixhours and moved the PR from Twenty Sixteen over.

See: https://github.com/WordPress/twentysixteen/pull/496

#5 @davidakennedy
12 months ago

  • Milestone changed from Awaiting Review to Future Release
Note: See TracTickets for help on using tickets.