Make WordPress Core

Timestamp:
11/19/2021 08:22:43 PM (4 years ago)
Author:
hellofromTonya
Message:

Comments: Fix PHP Notice "trying to get property of non-object" in comments_open() and pings_open().

The post for the comments or pings is retrieved by get_post(). If the post exists, get_post() returns an instance of WP_Post; else, it returns null.

In both comments_open() and pings_open(), the returned value from get_post() is used without checking if the object returned, if the post exists. When the post does not exist, the following notices occur:

PHP Notice:  Trying to get property 'comment_status' of non-object in .../src/wp-includes/comment-template.php on line 1244

and

PHP Notice:  Trying to get property 'pings_open' of non-object in ../src/wp-includes/comment-template.php on line 1274

This commit fixes these notices by checking if the post has a non-falsey value before using it as an object to set the $open state. As the return from get_post() will only be an object or null, the truthy check is appropriate and slightly more performant.

Tests added to validate the fix.

Follow-up to [1964], [40666].

Props dd32, audrasjb, costdev, hellofromTonya, sergeybiryukov.
Fixes #54159.

File:
1 added

Note: See TracChangeset for help on using the changeset viewer.