WordPress.org

Make WordPress Core

Ticket #18548: 18548.2.diff

File 18548.2.diff, 4.8 KB (added by obenland, 5 years ago)
  • src/wp-includes/default-filters.php

     
    196196add_filter( 'http_request_host_is_external', 'allowed_http_request_hosts', 10, 2 );
    197197
    198198// Actions
     199add_action( 'wp_head',             '_wp_render_title_tag',            1     );
    199200add_action( 'wp_head',             'wp_enqueue_scripts',              1     );
    200201add_action( 'wp_head',             'feed_links',                      2     );
    201202add_action( 'wp_head',             'feed_links_extra',                3     );
  • src/wp-includes/general-template.php

     
    731731}
    732732
    733733/**
     734 * Display <title> tag with contents.
     735 *
     736 * @since 4.1.0
     737 * @access private
     738 */
     739function _wp_render_title_tag() {
     740        if ( ! current_theme_supports( 'title-tag' ) ) {
     741                return;
     742        }
     743
     744        // This can only work internally on wp_head.
     745        if ( ! did_action( 'wp_head' ) && ( ! function_exists( 'doing_action' ) || ! doing_action( 'wp_head' ) ) ) {
     746                return;
     747        }
     748
     749        // If wp_title() has fired, don't do anything.
     750        if ( did_action( 'wp_title' ) ) {
     751                return;
     752        }
     753
     754        // Allow early filtering, if this returns a title skip all the logic below and print it.
     755        if ( null !== $pre = apply_filters( 'pre_wp_title_tag', null ) ) {
     756                echo "<title>$pre<title>\n";
     757
     758                return;
     759        }
     760
     761        global $page, $paged, $wp_locale;
     762
     763        $title = array();
     764
     765        if ( is_home() && is_front_page() ) {
     766                $title[] = get_bloginfo( 'name', 'display' );
     767
     768                $description = get_bloginfo( 'description', 'display' );
     769                if ( ! empty( $description ) ) {
     770                        $title[] = $description;
     771                }
     772
     773        // If we're on the blog page and that page is not the homepage, use the container page's title
     774        } elseif ( is_home() && ! is_front_page() ) {
     775                $title[] = get_post( get_option( 'page_for_posts' ) )->post_title;
     776
     777        } elseif ( ! is_home() && is_front_page() ) {
     778                $title[] = single_post_title( '', false );
     779
     780        // If we're on a post / page
     781        } elseif ( is_singular() ) {
     782                $title[] = single_post_title( '', false );
     783
     784        // If we're on a category or tag or taxonomy archive
     785        } elseif ( is_category() || is_tag() || is_tax() ) {
     786                $title[] = single_term_title( '', false );
     787
     788                // If it's a search
     789        } elseif ( is_search() ) {
     790                /* translators: 1: search phrase */
     791                $title[] = sprintf( esc_html__( 'Search Results for "%1$s"' ), strip_tags( get_query_var( 's' ) ) );
     792
     793        // If we're on an author archive
     794        } elseif ( is_author() ) {
     795                if ( $author = get_queried_object() ) {
     796                        $title[] = $author->display_name;
     797                }
     798
     799        // If we're on a post type archive
     800        } elseif ( is_post_type_archive() ) {
     801                $title[] = post_type_archive_title( '', false );
     802
     803        } elseif ( is_year() ) {
     804                $title[] = get_the_date( _x( 'Y', 'yearly archives date format' ) );
     805
     806        } elseif ( is_month() ) {
     807                $title[] = get_the_date( _x( 'F Y', 'monthly archives date format' ) );
     808
     809        // If it's a date archive
     810        } elseif ( is_day() ) {
     811                $title[] = get_the_date();
     812
     813        // If it's a 404 page
     814        } elseif ( is_404() ) {
     815                $title[] = esc_html__( 'Page not found' );
     816        }
     817
     818        // Add a page number if necessary:
     819        if ( ( $paged >= 2 || $page >= 2 ) && ! is_404() ) {
     820                $title[] = sprintf( esc_html__( 'Page %s' ), max( $paged, $page ) );
     821        }
     822
     823        if ( ! is_home() && ! is_front_page() ) {
     824                $title[] = get_bloginfo( 'name', 'display' );
     825        }
     826
     827        $title = apply_filters( 'wp_title_tag_array', $title );
     828
     829        // sep, defaults to - as the separator between two parts of the title
     830        $sep = '|';
     831
     832        $title = implode( " $sep ", $title );
     833        $title = apply_filters( 'wp_title_tag', $title, $sep );
     834
     835        echo "<title>$title</title>\n";
     836}
     837
     838/**
    734839 * Display or retrieve page title for all areas of blog.
    735840 *
    736841 * By default, the page title will display the separator before the page title,
  • src/wp-includes/theme.php

     
    16071607                                define( 'BACKGROUND_IMAGE', $args[0]['default-image'] );
    16081608
    16091609                        break;
     1610                        // ensure that 'title-tag' is accessible in the admin.
     1611
     1612                case 'title-tag' :
     1613                        if ( function_exists( 'doing_action' )
     1614                           && ! doing_action( 'after_setup_theme' ) // can be called here
     1615                           && ! doing_action( 'init' ) // can also be called here
     1616                           && ( doing_action() || did_action( 'wp_loaded' ) ) // can be called in functions.php but must happen before wp_loaded, i.e. not in header.php
     1617                        ) {
     1618                                _doing_it_wrong( "add_theme_support( 'title-tag' )", __( "You need to add support before 'wp_loaded'." ), '4.1.0' );
     1619                        }
     1620                        break;
    16101621        }
    16111622
    16121623        $_wp_theme_features[ $feature ] = $args;