默认的WordPress主题(如2162和2121)使用automatic <title>
tag feature (or the title-tag
theme support) introduced in WordPress 4.1, 因此,使用该功能,如果要修改标题,则需要使用document_title_parts
hook:
add_filter( \'document_title_parts\', \'my_document_title_parts\' );
function my_document_title_parts( $title ) { // $title is an *array*
if ( is_category() ) {
$title[\'title\'] = \'Posts in \' . single_cat_title( \'\', false );
}
return $title;
}
更新
实际上,看看编辑过的问题中的代码(或丑陋的黑客),我认为我上面的示例代码不起作用,因为
is_category()
返回了一个
false
这可能是因为;每周更新”;是一个页面(发布
page
类型),而不是
/category/<category slug>
, e、 g。
example.com/category/uncategorized
.
所以让我这样说:对于像《二十一世纪》这样支持title-tag
, 您应该使用document_title_parts
钩子过滤标题标签值,即。<title>THIS PART</title>
. 但是对于修改标题的实际代码,如何编写代码将取决于您。
尽管如此,请尝试以下方法(并确保删除代码中的丑陋黑客):
add_filter( \'document_title_parts\', \'my_document_title_parts\' );
function my_document_title_parts( $title ) {
if ( false !== strpos( $title[\'title\'], \'Weekly Updates\' ) ) {
$title[\'title\'] = \'Weekly Updates\';
}
return $title;
}
/* NOTE: Try using a greater number as the callback priority, if the default (10)
* doesn\'t work - example with 9999 as the priority:
add_filter( \'document_title_parts\', \'my_document_title_parts\', 9999 );
*/
请注意,挂钩有一个参数
$title
它是一个数组,包含(但不是所有页面上的所有项目):
- \'title\'(字符串)查看页面的标题
- \'page\'(字符串)可选。页码(如果分页)
- \'tagline\'(字符串)可选。主页上的站点描述
- \'site\'(字符串)可选。不在主页上时的网站标题
此外,如果要更改标题分隔符(如
-
), 然后您可以使用
document_title_separator
filter.