I just added the following filter in my theme functions.php file:
function change_the_title() {
    return 'My modified title';
}
add_filter('wp_title', 'change_the_title');
And in my header.php:
<!DOCTYPE html>
<html <?php language_attributes(); ?>>
<head>
    <meta charset="<?php bloginfo( 'charset' ); ?>">
    <meta id="viewport" name="viewport" content="width=device-width">
    <link rel="profile" href="http://gmpg.org/xfn/11">
    <link rel="pingback" href="<?php bloginfo( 'pingback_url' ); ?>">
    <?php wp_head(); ?>
</head>
<body <?php body_class();?>>
Then, I found the title of my page did NOT change! And the title tag was injected in the wp_head function.
More, if I call the function wp_title manually in the header, it does return the expected value.
What's the matter? How can I work around it?
Addition: My WordPress version is 4.4.
I finally found out that the WordPress core code was changed, see the below piece of code.
/**
 * Displays title tag with content.
 *
 * @ignore
 * @since 4.1.0
 * @since 4.4.0 Improved title output replaced `wp_title()`.
 * @access private
 */
function _wp_render_title_tag() {
    if ( ! current_theme_supports( 'title-tag' ) ) {
        return;
    }
    echo '<title>' . wp_get_document_title() . '</title>' . "\n";
}
So, after 4.4, the core do not inject the wp_title result into the header <title> tag, but do the same thing with a new function wp_get_document_title.
So instead, we can do the same thing by:
1. change the title directly:
add_filter('pre_get_document_title', 'change_the_title');
function change_the_title() {
    return 'The expected title';
}
2. filtering the title parts:
add_filter('document_title_parts', 'filter_title_part');
function filter_title_part($title) {
    return array('a', 'b', 'c');
}
For more, see the details here: https://developer.wordpress.org/reference/functions/wp_get_document_title/
PS: Looking into the source of function
wp_get_document_titleis a good idea, the hooks inside which tells a lot.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With