Opened 13 months ago

Closed 7 months ago

#20519 closed defect (bug) (fixed)

PHP Notice in get_single_template()

Reported by: markjaquith Owned by: ryan
Priority: normal Milestone: 3.5
Component: Warnings/Notices Version: 3.0
Severity: normal Keywords: has-patch commit
Cc:

Description

PHP Notice: Trying to get property of non-object in wp-includes/template.php on line 283

These get_*_template() functions make a lot of assumptions about the current state of the environment.

Attachments (2)

validate-template-vars.diff (3.1 KB) - added by wonderboymusic 8 months ago.
20519.diff (2.8 KB) - added by ryan 7 months ago.

Download all attachments as: .zip

Change History (8)

Related: #17662, #18614

Last edited 13 months ago by SergeyBiryukov (previous) (diff)
  • Version changed from 3.4 to 3.0
  • Keywords has-patch added
  • Milestone changed from Awaiting Review to 3.5

This patch has basic validation for the passing of vars to template file names

I think in most cases it should be enough to validate we have an object. So rather than:

if ( isset( $author->user_nicename ) )
 	$templates[] = "author-{$author->user_nicename}.php";
if ( isset( $author->ID ) )
        $templates[] = "author-{$author->ID}.php";

We can do:

if ( $author ) {
 	$templates[] = "author-{$author->user_nicename}.php";
        $templates[] = "author-{$author->ID}.php";
}

ryan7 months ago

  • Keywords commit added
  • Owner set to ryan
  • Resolution set to fixed
  • Status changed from new to closed

In [22293]:

Avoid notices in get_*_template() functions that use get_queried_object(), which can return null. Props wonderboymusic. fixes #20519

Note: See TracTickets for help on using tickets.