This page redirects to an external site: https://developer.wordpress.org/reference/functions/wp_title/
Languages: English • 日本語 中文(简体) • Русский • (Add your language)
Display or retrieve page <title> for all areas of blog.
The text for the <title> element is generated based on the type of post, page, archive, etc., being displayed. You may also append or prepend a string to this using the function's parameters. The result may be displayed directly, or returned for further processing.
You can also specify what separator is to be used between the different segments of the title. By default, the separator is displayed 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.
The main reason to have the blog title to the right is for browsers supporting tabs. You can achieve this by using the $seplocation parameter and setting the value to 'right'.
<?php wp_title( $sep, $display, $seplocation ); ?>
Plugins might use the wp_title filter to generate a value. While it is possible to construct a "title" by doing things such as concatenating with bloginfo (the Site Name), if you do not use the wp_title function in your theme, you will likely have errors or unexpected behavior.
This function, and not a work-around, is required for publicly by WordPress standards.
The function always returns a value from the database, and the parameters define what information is appended to the database value, where it is appended, and how it is formatted.
TRUE) or as a parameter for another PHP function (FALSE).
TRUEright, then the function appends the sep string to the database value: said differently, the sep is placed to the right of the title of the post or page. If seplocation is left or any value other than right, then the function prepends the sep string to the database value. Said differently, the function adds the sep to the left of the title of the post or page. Special case: if $display is FALSE and you do not define the $seplocation parameter, the function will prepend a space to the entire string.
leftThe function returns a concatenated string. It always queries the database for a default string; the value of the default string depends on the type of post or page:
The function then prepends or appends the sep string and returns the entire value.
If you do not pass any parameters for a single post, for example:
<title><?php wp_title(); ?></title>
If the title of the post is "Hello world!", then the function will return
» Hello world!
The sep string may be zero characters, which will remove » from the returned value. To do this, set the sep parameter to zero characters, for example:
<title><?php wp_title(''); ?></title>
If the title of the post is "Hello world!", then the function will return:
Hello world!
If you want to change the way that the title displays on different pages you can use a filter.
/**
* Filters wp_title to print a neat <title> tag based on what is being viewed.
*
* @param string $title Default title text for current view.
* @param string $sep Optional separator.
* @return string The filtered title.
*/
function theme_name_wp_title( $title, $sep ) {
if ( is_feed() ) {
return $title;
}
global $page, $paged;
// Add the blog name
$title .= get_bloginfo( 'name', 'display' );
// Add the blog description for the home/front page.
$site_description = get_bloginfo( 'description', 'display' );
if ( $site_description && ( is_home() || is_front_page() ) ) {
$title .= " $sep $site_description";
}
// Add a page number if necessary:
if ( ( $paged >= 2 || $page >= 2 ) && ! is_404() ) {
$title .= " $sep " . sprintf( __( 'Page %s', '_s' ), max( $paged, $page ) );
}
return $title;
}
add_filter( 'wp_title', 'theme_name_wp_title', 10, 2 );
If you are using a custom homepage with custom loops and stuff or a custom front-page, you will have an empty wp_title. Here goes a neat hack to add the description/tagline at the wp_title place on homepage:
<title><?php wp_title(''); ?></title>
Then in your "functions.php" from theme file :
add_filter( 'wp_title', 'baw_hack_wp_title_for_home' );
function baw_hack_wp_title_for_home( $title )
{
if( empty( $title ) && ( is_home() || is_front_page() ) ) {
return __( 'Home', 'theme_domain' ) . ' | ' . get_bloginfo( 'description' );
}
return $title;
}
You can format this string as you want of course.
wp_title() is in wp-includes/general-template.php.