How Do I Set the Page Title Dynamically?

Is it possible to change the page title with code?

For example, let’s say the page’s name is “Book your Order”, but I want to change it to “Book Order #123”.

I Google’d a bit and looked here and didn’t see anything. Anyone know of a plugin or hack?

wp_title returns the page title but doesn’t allow setting the page title:
http://codex.wordpress.org/Function_Reference/wp_title

Solutions Collecting From Web of "How Do I Set the Page Title Dynamically?"

There is no documentation on it but you could always apply a filter to the_title like this:

add_filter('the_title','some_callback');
function some_callback($data){
    global $post;
    // where $data would be string(#) "current title"
    // Example:
    // (you would want to change $post->ID to however you are getting the book order #,
    // but you can see how it works this way with global $post;)
    return 'Book Order #' . $post->ID;
}

See these:

http://codex.wordpress.org/Function_Reference/the_title

http://codex.wordpress.org/Function_Reference/add_filter

Really depends if you’re looking to display a custom title for the current page (i.e. the contents of the <title></title> tag in the header) or filter the title of pages in the page body or in listings.

In the former case (the title of the current page), try adding a filter for wp_title() like so:
http://codex.wordpress.org/Plugin_API/Filter_Reference/wp_title

If you want to modify page titles across the board, filtering the_title() will do the trick:
http://codex.wordpress.org/Plugin_API/Filter_Reference/the_title

So you want to change the title on a per page basis? Firstly setup a custom post met a box. Smashing Magazine covered this recently: http://wp.smashingmagazine.com/2011/10/04/create-custom-post-meta-boxes-wordpress/. You can then create a simple function to replace the title if the custom meta box has a value.

There are several SEO plugins that also provide this functionality. Try Yoast SEO for examples: http://wordpress.org/extend/plugins/wordpress-seo/

Hope this helps.