Make WordPress Core

Changeset 15195


Ignore:
Timestamp:
06/10/2010 06:26:53 PM (16 years ago)
Author:
nacin
Message:

Use wp_title() proper in Twenty Ten, and move the janky stuff to a filter. see #13751.

Location:
trunk/wp-content/themes/twentyten
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/wp-content/themes/twentyten/functions.php

    r15193 r15195  
    192192/* Shows the same border as on front end */
    193193#headimg {
    194         border-bottom: 1px solid #000000;
    195         border-top: 4px solid #000000;
    196 }
    197 
    198 /* If NO_HEADER_TEXT is false, you can style here the header text preview */
    199 #headimg #name {
    200 }
    201 
    202 #headimg #desc {
    203 }
     194        border-bottom: 1px solid #000;
     195        border-top: 4px solid #000;
     196}
     197/* If NO_HEADER_TEXT is false, you would style the text with these selectors:
     198        #headimg #name { }
     199        #headimg #desc { }
     200*/
    204201</style>
    205202<?php
     
    207204endif;
    208205
    209 if ( ! function_exists( 'twentyten_the_page_number' ) ) :
    210 /**
    211  * Prints the page number currently being browsed, with a vertical bar before it.
    212  *
    213  * Used in Twenty Ten's header.php to add the page number to the <title> HTML tag.
    214  *
    215  * @since Twenty Ten 1.0
    216  */
    217 function twentyten_the_page_number() {
    218         global $paged; // Contains page number.
    219         if ( $paged >= 2 )
    220                 echo ' | ' . sprintf( __( 'Page %s', 'twentyten' ), $paged );
    221 }
    222 endif;
     206/**
     207 * Makes some changes to the <title> tag, by filtering the output of wp_title().
     208 *
     209 * If we have a site description and we're viewing the home page or a blog posts
     210 * page (when using a static front page), then we will add the site description.
     211 *
     212 * If we're viewing a search result, then we're going to recreate the title entirely.
     213 * We're going to add page numbers to all titles as well, to the middle of a search
     214 * result title and the end of all other titles.
     215 *
     216 * The site title also gets added to all titles.
     217 *
     218 * @since Twenty Ten 1.0
     219 *
     220 * @param string $title Title generated by wp_title()
     221 * @param string $separator The separator passed to wp_title(). Twenty Ten uses a
     222 *      vertical bar, "|", as a separator in header.php.
     223 * @return string The new title, ready for the <title> tag.
     224 */
     225function twentyten_filter_wp_title( $title, $separator ) {
     226        // The $paged global variable contains the page number of a listing of posts.
     227        // The $page global variable contains the page number of a single post that is paged.
     228        // We'll display whichever one applies, if we're not looking at the first page.
     229        global $paged, $page;
     230
     231        if ( is_search() ) {
     232                // If we're a search, let's start over:
     233                $title = sprintf( __( 'Search results for %s', 'twentyten' ), '"' . get_search_query() . '"' );
     234                // Add a page number if we're on page 2 or more:
     235                if ( $paged >= 2 )
     236                        $title .= " $separator " . sprintf( __( 'Page %s', 'twentyten' ), $paged );
     237                // Add the site name to the end:
     238                $title .= " $separator " . get_bloginfo( 'name', 'display' );
     239                // We're done. Let's send the new title back to wp_title():
     240                return $title;
     241        }
     242
     243        // Otherwise, let's start by adding the site name to the end:
     244        $title .= get_bloginfo( 'name', 'display' );
     245
     246        // If we have a site description and we're on the home/front page, add the description:
     247        $site_description = get_bloginfo( 'description', 'display' );
     248        if ( $site_description && ( is_home() || is_front_page() ) )
     249                $title .= " $separator " . $site_description;
     250
     251        // Add a page number if necessary:
     252        if ( $paged >= 2 || $page >= 2 )
     253                $title .= " $separator " . sprintf( __( 'Page %s', 'twentyten' ), max( $paged, $page ) );
     254
     255        // Return the new title to wp_title():
     256        return $title;
     257}
     258add_filter( 'wp_title', 'twentyten_filter_wp_title', 10, 2 );
    223259
    224260/**
  • trunk/wp-content/themes/twentyten/header.php

    r15082 r15195  
    1212<html <?php language_attributes(); ?>>
    1313<head>
    14         <meta charset="<?php bloginfo( 'charset' ); ?>" />
    15         <title>
    16         <?php // Returns the title based on what is being viewed
    17                 if ( is_single() ) { // single posts
    18                         single_post_title(); echo ' | '; bloginfo( 'name' );
    19                 // The home page or, if using a static front page, the blog posts page.
    20                 } elseif ( is_home() || is_front_page() ) {
    21                         bloginfo( 'name' );
    22                         if( get_bloginfo( 'description' ) )
    23                                 echo ' | ' ; bloginfo( 'description' );
    24                         twentyten_the_page_number();
    25                 } elseif ( is_page() ) { // WordPress Pages
    26                         single_post_title( '' ); echo ' | '; bloginfo( 'name' );
    27                 } elseif ( is_search() ) { // Search results
    28                         printf( __( 'Search results for %s', 'twentyten' ), '"'.get_search_query().'"' ); twentyten_the_page_number(); echo ' | '; bloginfo( 'name' );
    29                 } elseif ( is_404() ) {  // 404 (Not Found)
    30                         _e( 'Not Found', 'twentyten' ); echo ' | '; bloginfo( 'name' );
    31                 } else { // Otherwise:
    32                         wp_title( '' ); echo ' | '; bloginfo( 'name' ); twentyten_the_page_number();
    33                 }
    34         ?>
    35         </title>
    36         <link rel="profile" href="http://gmpg.org/xfn/11" />
    37         <link rel="stylesheet" type="text/css" media="all" href="<?php bloginfo( 'stylesheet_url' ); ?>" />
    38         <link rel="pingback" href="<?php bloginfo( 'pingback_url' ); ?>" />
     14<meta charset="<?php bloginfo( 'charset' ); ?>" />
     15<title><?php
     16        /*
     17         * Print the <title> tag based on what is being viewed.
     18         * We filter the output of wp_title() a bit -- see
     19         * twentyten_filter_wp_title() in functions.php.
     20         */
     21        wp_title( '|', true, 'right' );
     22
     23        ?></title>
     24<link rel="profile" href="http://gmpg.org/xfn/11" />
     25<link rel="stylesheet" type="text/css" media="all" href="<?php bloginfo( 'stylesheet_url' ); ?>" />
     26<link rel="pingback" href="<?php bloginfo( 'pingback_url' ); ?>" />
    3927<?php
    4028        /* We add some JavaScript to pages with the comment form
     
    4937         * as styles, scripts, and meta tags.
    5038         */
    51 
    5239        wp_head();
    5340?>
Note: See TracChangeset for help on using the changeset viewer.