A recent recommendation, starting with WordPress 3.3, from the WordPress Theme Review Team reads:

Themes are REQUIRED to use wp_title filter to filter wp_title() (RECOMMENDED), or pass argument to wp_title() (OPTIONALLY), in order to modify document title content

This has been discussed, worked through, and for the most part sorted out … but there doesn’t appear to be any sort of example code to work from. This presented an opportunity to have a look around the WordPress codex and the source code for some ideas how to filter the `wp_title` function.

Essentially, the idea behind the code (below) is to take a basic function call of `wp_title` add some relevant text (a la default themes: Twenty Ten / Twenty Eleven) then filter it back into the function; and finally to echo this to the HTML <title> tag.

To see the WPFA WP Title code click here.To hide the WPFA WP Title code click here.

if ( ! function_exists( 'wpfa_wp_title' ) ) {
* WPFA WP Title
* Utilizes the `wp_title` filter to add text to the default output
* @package WPFA_WP_Title
* @version 0.2 - last revised April 26, 2012
* @link http://codex.wordpress.org/Plugin_API/Filter_Reference/wp_title
* @link https://gist.github.com/1410493
* @param string $old_title - default title text
* @param string $sep - separator character
* @param string $sep_location - left|right - separator placement in relationship to title
* @return string - new title text
    function wpfa_wp_title( $old_title, $sep, $sep_location ) {
        global $page, $paged;
        /** Set initial title text */
        $wpfa_title_text = $old_title . get_bloginfo( 'name' );
        /** Add wrapping spaces to separator character */
        $sep = ' ' . $sep . ' ';

        /** Add the blog description (tagline) for the home/front page */
        $site_tagline = get_bloginfo( 'description', 'display' );
        if ( $site_tagline && ( is_home() || is_front_page() ) )
            $wpfa_title_text .= "$sep$site_tagline";

        /** Add a page number if necessary */
        if ( $paged >= 2 || $page >= 2 )
            $wpfa_title_text .= $sep . sprintf( __( 'Page %s', 'wpfa-wp-title-textdomain' ), max( $paged, $page ) );

        return $wpfa_title_text;
add_filter( 'wp_title', 'wpfa_wp_title', 10, 3 ); ?>

Hopefully this will be useful, or maybe it will not … but it will be found in the next release of Desk Mess Mirrored as that is the theme where I first wrote and tested it with.


To see the note click here.To hide the note click here.
PS: Note the github:gist link in the code sample … feel free to download it from there, as well as copying it from here. The Doctor.
To see the note click here.To hide the note click here.
Code example revised April 26, 2012 to more correctly use the `wp_title` filter. Also to note, this method now expects the theme to simply call wp_title() in the ‘header.php’ template. The Doctor.