答案 0 :(得分:33)
我终于发现WordPress核心代码已经更改,请参阅下面的代码。
/**
* 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";
}
因此,在4.4之后,核心不会将wp_title
结果注入标题<title>
标记,而是使用新函数wp_get_document_title
执行相同操作。
相反,我们可以通过以下方式做同样的事情:
1。直接更改标题:
add_filter('pre_get_document_title', 'change_the_title');
function change_the_title() {
return 'The expected title';
}
2。过滤标题部分:
add_filter('document_title_parts', 'filter_title_part');
function filter_title_part($title) {
return array('a', 'b', 'c');
}
有关详情,请参阅此处的详细信息:https://developer.wordpress.org/reference/functions/wp_get_document_title/
PS:查看函数的来源
wp_get_document_title
是一个好主意,里面的钩子说明了很多。
答案 1 :(得分:0)
不确定是否需要注入变量,但请尝试此操作。
function change_the_title($title) {
return 'My modified title';
}
add_filter('wp_title', 'change_the_title');
答案 2 :(得分:-2)
您在title
代码中遗漏了head
,添加了<head>
代码
<title><?php wp_title('|', true, 'left'); ?></title>
你的wp_filter会正常工作。