Make WordPress Core

Changeset 61056


Ignore:
Timestamp:
10/24/2025 03:30:35 AM (7 weeks ago)
Author:
westonruter
Message:

General: Improve resilience of feed_links_extra() when global $post is not set.

This obtains the global post via get_queried_object() when is_singular().

Developed in https://github.com/WordPress/wordpress-develop/pull/10401

Props westonruter, johnjamesjacoby, Presskopp, abcd95, dilipbheda, sabernhardt, awetz583, indirabiswas27.
Fixes #63263.

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-includes/general-template.php

    r60697 r61056  
    33273327    $args = apply_filters( 'feed_links_extra_args', $args );
    33283328
    3329     if ( is_singular() ) {
    3330         $id   = 0;
    3331         $post = get_post( $id );
     3329    $queried_object = get_queried_object();
     3330    if ( is_singular() && $queried_object instanceof WP_Post ) {
     3331        $post = $queried_object;
    33323332
    33333333        /** This filter is documented in wp-includes/general-template.php */
     
    33493349        $show_post_comments_feed = apply_filters( 'feed_links_extra_show_post_comments_feed', $show_comments_feed );
    33503350
    3351         if ( $show_post_comments_feed && ( comments_open() || pings_open() || $post->comment_count > 0 ) ) {
     3351        if ( $show_post_comments_feed && ( comments_open( $post ) || pings_open( $post ) || (int) $post->comment_count > 0 ) ) {
    33523352            $title = sprintf(
    33533353                $args['singletitle'],
    33543354                get_bloginfo( 'name' ),
    33553355                $args['separator'],
    3356                 the_title_attribute( array( 'echo' => false ) )
     3356                the_title_attribute(
     3357                    array(
     3358                        'echo' => false,
     3359                        'post' => $post,
     3360                    )
     3361                )
    33573362            );
    33583363
  • trunk/tests/phpunit/tests/general/feedLinksExtra.php

    r58097 r61056  
    635635        );
    636636    }
     637
     638    /**
     639     * @ticket 63263
     640     */
     641    public function test_feed_links_extra_should_work_fail_if_global_post_empty() {
     642        $post_id = self::factory()->post->create();
     643        $this->go_to( get_permalink( $post_id ) );
     644        $GLOBALS['post'] = null;
     645
     646        $this->assertNotEmpty( get_echo( 'feed_links_extra' ) );
     647    }
    637648}
Note: See TracChangeset for help on using the changeset viewer.