Tell me more ×
WordPress Answers is a question and answer site for WordPress developers and administrators. It's 100% free, no registration required.

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

share|improve this question
Where would the value come from? what has in that page the value of #123 ? – Sagive SEO Nov 7 '11 at 18:51

2 Answers

up vote 6 down vote accepted

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

share|improve this answer
This is great, thank you. – Alex Cook Jan 16 '12 at 19:35

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.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.