如果你的文章存在多个分类,且希望更精准 SEO,可拼接多个分类或使用主分类:
例:搜索页与文章页的写法,请在functions.php内加入
add_filter('document_title_parts', function($title) {
if (is_search()) {
$keyword = get_search_query();
$title['title'] = '搜索:' . esc_html($keyword);
} elseif (is_single()) {
global $post;
if ($post && has_category('', $post)) {
$cats = get_the_category($post->ID);
if (!empty($cats)) {
if (!empty($title['title'])) {
$title['title'] .= ' - ' . $cats[0]->name;
} else {
$title['title'] = $cats[0]->name;
}
}
}
}
return $title;
});
在网站首页、标签页、作者页也加入类似 SEO 格式:
add_filter('document_title_parts', function($title) {
global $post;
// 获取站点名
$site_name = get_bloginfo('name');
$site_desc = get_bloginfo('description');
if (is_front_page() || is_home()) {
$title['title'] = $site_name;
$title['tagline'] = $site_desc;
} elseif (is_single()) {
$cats = get_the_category($post->ID ?? 0);
if (!empty($cats)) {
$title['title'] .= ' - ' . $cats[0]->name;
}
$title['site'] = $site_name;
} elseif (is_page()) {
$title['site'] = $site_name;
} elseif (is_search()) {
$keyword = get_search_query();
$title['title'] = '搜索:' . esc_html($keyword);
$title['site'] = $site_name;
} elseif (is_category()) {
$title['title'] = single_cat_title('', false);
$title['site'] = $site_name;
} elseif (is_tag()) {
$title['title'] = '标签:' . single_tag_title('', false);
$title['site'] = $site_name;
} elseif (is_author()) {
$author = get_queried_object();
$title['title'] = '作者:' . ($author->display_name ?? '未知作者');
$title['site'] = $site_name;
} elseif (is_404()) {
$title['title'] = '页面未找到';
$title['site'] = $site_name;
}
// 如果是分页页,追加页码信息
if (get_query_var('paged') > 1) {
$title['title'] .= ' - 第 ' . get_query_var('paged') . ' 页';
}
return $title;
});