wp_title

Definition:
function wp_title($sep = '»', $display = true, $seplocation = '') {}

Display or retrieve page title for all areas of blog.
By default, the page title will display the separator before the page title, so that the blog title will be before the page title. This is not good for title display, since the blog title shows up on most tabs and not what is important, which is the page that the user is looking at.

Parameters

  • string $sep: Optional, default is ‘»’. How to separate the various items within the page title.
  • bool $display: Optional, default is true. Whether to display or retrieve title.
  • string $seplocation: Optional. Direction to display title, ‘right’.

Return values

returns:String on retrieve, null when displaying.

Defined filters

  • wp_title
    apply_filters('wp_title', $title, $sep, $seplocation)

Source code

function wp_title($sep = '»', $display = true, $seplocation = '') {

	global $wpdb, $wp_locale;



	$m = get_query_var('m');

	$year = get_query_var('year');

	$monthnum = get_query_var('monthnum');

	$day = get_query_var('day');

	$search = get_query_var('s');

	$title = '';



	$t_sep = '%WP_TITILE_SEP%'; // Temporary separator, for accurate flipping, if necessary



	// If there is a post

	if ( is_single() || ( is_home() && !is_front_page() ) || ( is_page() && !is_front_page() ) ) {

		$title = single_post_title( '', false );

	}



	// If there's a category or tag

	if ( is_category() || is_tag() ) {

		$title = single_term_title( '', false );

	}



	// If there's a taxonomy

	if ( is_tax() ) {

		$term = get_queried_object();

		$tax = get_taxonomy( $term->taxonomy );

		$title = single_term_title( $tax->labels->name . $t_sep, false );

	}



	// If there's an author

	if ( is_author() ) {

		$author = get_queried_object();

		$title = $author->display_name;

	}



	// If there's a post type archive

	if ( is_post_type_archive() )

		$title = post_type_archive_title( '', false );



	// If there's a month

	if ( is_archive() && !empty($m) ) {

		$my_year = substr($m, 0, 4);

		$my_month = $wp_locale->get_month(substr($m, 4, 2));

		$my_day = intval(substr($m, 6, 2));

		$title = $my_year . ( $my_month ? $t_sep . $my_month : '' ) . ( $my_day ? $t_sep . $my_day : '' );

	}



	// If there's a year

	if ( is_archive() && !empty($year) ) {

		$title = $year;

		if ( !empty($monthnum) )

			$title .= $t_sep . $wp_locale->get_month($monthnum);

		if ( !empty($day) )

			$title .= $t_sep . zeroise($day, 2);

	}



	// If it's a search

	if ( is_search() ) {

		/* translators: 1: separator, 2: search phrase */

		$title = sprintf(__('Search Results %1$s %2$s'), $t_sep, strip_tags($search));

	}



	// If it's a 404 page

	if ( is_404() ) {

		$title = __('Page not found');

	}



	$prefix = '';

	if ( !empty($title) )

		$prefix = " $sep ";



 	// Determines position of the separator and direction of the breadcrumb

	if ( 'right' == $seplocation ) { // sep on right, so reverse the order

		$title_array = explode( $t_sep, $title );

		$title_array = array_reverse( $title_array );

		$title = implode( " $sep ", $title_array ) . $prefix;

	} else {

		$title_array = explode( $t_sep, $title );

		$title = $prefix . implode( " $sep ", $title_array );

	}



	$title = apply_filters('wp_title', $title, $sep, $seplocation);



	// Send it out

	if ( $display )

		echo $title;

	else

		return $title;



}

4175

No comments yet... Be the first to leave a reply!

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: