Answers:
我会使用wp_title
过滤器挂钩:
function theme_slug_filter_wp_title( $title ) {
if ( is_404() ) {
$title = 'ADD 404 TITLE TEXT HERE';
}
// You can do other filtering here, or
// just return $title
return $title;
}
// Hook into wp_title filter hook
add_filter( 'wp_title', 'theme_slug_filter_wp_title' );
这将与其他插件(例如SEO插件)很好地兼容,并且相对向前兼容(即将更改文档标题)。
编辑
如果您需要覆盖SEO插件过滤器,则可能只需要为呼叫添加一个较低的优先级即可add_filter()
;例如如下:
add_filter( 'wp_title', 'theme_slug_filter_wp_title', 11 );
默认值为10
。较低的数字执行较早(例如,较高的优先级),较高的数字执行较晚(例如,较低的优先级)。因此,假设您的SEO插件使用默认优先级(即10
),则只需使用11或更高的数字即可。
wp_title
过滤器。如果您需要覆盖它,请为您的呼叫添加优先级add_filter()
。请参阅答案更新。
可接受的答案不再有效,如wp_title
WordPress 4.4及更高版本中已弃用(请参阅此处)。现在,我们必须改为使用document_title_parts过滤器挂钩。
这是改写后使用的已接受答案document_title_parts
。
function theme_slug_filter_wp_title( $title_parts ) {
if ( is_404() ) {
$title_parts['title'] = 'ADD 404 TITLE TEXT HERE';
}
return $title_parts;
}
// Hook into document_title_parts
add_filter( 'document_title_parts', 'theme_slug_filter_wp_title' );
以下代码可与二十一个主题正常工作:
if ( is_404() ) {
echo __('Nothing Found','mytheme')
}
因此标题代码如下所示:
<title>
<?php
global $page, $paged;
if ( is_404() ) {
echo __('Nothing Found | ','mytheme');
}
else {
wp_title( '|', true, 'right' );
}
?>
</title>
<title>
使用该wp_title()
函数输出文本,方法是传递参数或使用wp_title
滤镜挂钩,以便代码与尝试修改<title>
文本的其他插件很好地配合使用。