Attention Interested in functions, hooks, classes, or methods? Check out the new WordPress Code Reference!

zh-cn:函数参考/wp title


显示或返回页面的标题。自Version 2.5开始支持,默认返回一个字符串,that separator can be designated to print before or after the title of the page.

This tag can be used anywhere within a template as long as it's outside The Loop on the main page, though is typically used in the <title> element for the head of a page.

The title text depends on the query:

Single post or a Page
the title of the post (or Page)
Date-based archive 
the date (e.g., "2006", "2006 - January")
the name of the category
Author page 
the public name of the user


 <?php wp_title$sep$echo$seplocation ); ?> 


(string) (optional) Text to display before or after of the post title (i.e. the separator). By default (if sep is blank) then the &raquo; (») symbol will be placed before or after (specified by the seplocation) the post title.
Default: &raquo; (»)
(boolean) (optional) Echo the title (True) or return the title for use as a PHP string (False).
Default: True
  • 1 (True) - default
  • 0 (False)
(string) (optional) Introduced with Version 2.5, this parameter defines the location of where the sep string prints in relation to the title of the post. For all values except 'right', the sep value is placed in front of (to the left of) the post title. If the value of seplocation is 'right' then the sep string will be appended after the post title.
Default: None


Default Usage

Displays the blog name (using bloginfo()) and the post title using defaults when accessing a single post page. If the blog name is "My WordPress Blog", and the title of the post is "Hello world!", then the example below will show the title as My WordPress Blog » Hello world!

 <title><?php bloginfo('name'); ?> <?php wp_title(); ?></title>

Turning Off »

If you don't want it to automatically display the » before the page title, just call the function as below:

 <title><?php bloginfo('name'); ?> <?php wp_title("",true); ?></title>

Covering Homepage

If you are using a custom homepage with custom loops and stuff, you will have an empty wp_title. Here goes a neat hack to add the description/tegline at the wp_title place on homepage:

<title><?php bloginfo('name'); ?> | <?php is_home() ? bloginfo('description') : wp_title(''); ?></title>

Using Separator

Displays blog name (using bloginfo()) along with post title in the document's title tag, using (pipe) "|" as the separator. This results in (when on a single post page) My WordPress Site | Hello world!.

 <title><?php bloginfo('name'); ?><?php wp_title('|'); ?></title>

This example would do the same thing:

 <title><?php bloginfo('name'); ?><?php wp_title('|',true,''); ?></title>

Additional Separators

Most common are so called pipes ('|') however there are few other that could be used.


 <title><?php bloginfo('name'); ?><?php wp_title('-'); ?></title>


 <title><?php bloginfo('name'); ?><?php wp_title(','); ?></title>


 <title><?php bloginfo('name'); ?><?php wp_title(' '); ?></title>

Not Recommended Separators

When using meta titles site owners need to send a clear message to their users as well as Search Engines. Here are two examples of what websites should avoid.

Double Hyphens

 <title><?php bloginfo('name'); ?><?php wp_title('--'); ?></title>


 <title><?php bloginfo('name'); ?><?php wp_title('_'); ?></title>

Underscores will confuse both users and search engines because the title becomes one word instead of several separated words.

Example when using underscores:

My_WordPress_Site instead of My WordPress Site.

Separator with Blog Name and Title Reversed

For Wordpress 2.5 and newer

 <?php wp_title('|',true,'right'); ?>
 <?php bloginfo('name'); ?>

For previous versions

This lets you reverse page title and blog name in the title tag from example above (Hello world!--My WordPress Blog) by removing the separator (using wp_title(' '), then tests if there is a post title (using if(wp_title(' ', false))), and displays the separator between it and bloginfo() if it does.

 <?php wp_title(' '); ?>
 <?php if(wp_title(' ', false)) { echo '|'; } ?> 
 <?php bloginfo('name'); ?>


See also index of Function Reference and index of Template Tags.