Make WordPress Core

Ticket #56068: 56068.2.diff

File 56068.2.diff, 2.0 KB (added by SergeyBiryukov, 2 years ago)
  • src/wp-includes/class-wp.php

     
    407407         * If showing a feed, it will also send Last-Modified, ETag, and 304 status if needed.
    408408         *
    409409         * @since 2.0.0
    410          * @since 4.4.0 `X-Pingback` header is added conditionally after posts have been queried in handle_404().
     410         * @since 4.4.0 `X-Pingback` header is added conditionally for single posts that allow pings.
     411         * @since 6.1.0 Runs after posts have been queried.
    411412         */
    412413        public function send_headers() {
    413414                $headers       = array();
     
    503504                        }
    504505                }
    505506
     507                if ( is_singular() ) {
     508                        $post = isset( $wp_query->post ) ? $wp_query->post : null;
     509
     510                        // Only set X-Pingback for single posts that allow pings.
     511                        if ( $post && pings_open( $post ) ) {
     512                                $headers['X-Pingback'] = get_bloginfo( 'pingback_url', 'display' );
     513                        }
     514                }
     515
    506516                /**
    507517                 * Filters the HTTP headers before they're sent to the browser.
    508518                 *
     
    700710
    701711                        if ( is_singular() ) {
    702712                                $post = isset( $wp_query->post ) ? $wp_query->post : null;
     713                                $next = '<!--nextpage-->';
    703714
    704                                 // Only set X-Pingback for single posts that allow pings.
    705                                 if ( $post && pings_open( $post ) && ! headers_sent() ) {
    706                                         header( 'X-Pingback: ' . get_bloginfo( 'pingback_url', 'display' ) );
    707                                 }
    708 
    709715                                // Check for paged content that exceeds the max number of pages.
    710                                 $next = '<!--nextpage-->';
    711716                                if ( $post && ! empty( $this->query_vars['page'] ) ) {
    712717                                        // Check if content is actually intended to be paged.
    713718                                        if ( false !== strpos( $post->post_content, $next ) ) {
     
    769774
    770775                $parsed = $this->parse_request( $query_args );
    771776
    772                 $this->send_headers();
    773 
    774777                if ( $parsed ) {
    775778                        $this->query_posts();
    776779                        $this->handle_404();
     
    777780                        $this->register_globals();
    778781                }
    779782
     783                $this->send_headers();
     784
    780785                /**
    781786                 * Fires once the WordPress environment has been set up.
    782787                 *