wp_title() 根據當前頁面類型(文章、頁面、分類、標簽、作者、歸檔、搜索、404 等)自動生成合適的頁面標題,**首頁不輸出內容**。
wp_title( $sep = '»', $display = true, $seplocation = '' )
» (»)。true 直接輸出,false 返回字符串。'right' 表示分隔符在右側(標題在左),其他值為左側(標題在右)。is_single()、is_page()、is_category()/is_tag()、is_tax()、is_author()、is_post_type_archive()、is_archive() (日期)、is_search()、is_404()。single_post_title('', false)single_term_title('', false)get_queried_object()->display_nameget_query_var('m') 或 year/monthnum/day 組合。sprintf(__('Search Results %1$s %2$s'), $sep, $search)__('Page not found')$seplocation === 'right' 時反轉標題片段順序,實現「文章標題 | 站點名」利於 SEO 的格式。apply_filters('wp_title', $title, $sep, $seplocation),允許插件/主題修改最終標題。**不要在 <title> 標籤中直接調用 wp_title()**。WordPress 4.1+ 推薦使用 title-tag 主題支持:
// functions.php add_theme_support( 'title-tag' );
WP 會自動在 <head> 輸出優化的 <title>,包含站點名、分頁碼等,並自動處理 wp_title 過濾器。
若必須手動控制:
<title>
<?php
// 1. 獲取 wp_title 內容(不輸出)
$page_title = wp_title('|', false, 'right'); // 分隔符在右,標題在左
// 2. 獲取站點名
$site_name = get_bloginfo('name');
// 3. 組合:文章標題 | 站點名
if ( $page_title ) {
echo $page_title . $site_name;
} else {
// 首頁:站點名 | 描述
echo $site_name . ' | ' . get_bloginfo('description');
}
?>
</title>
// 移除「分類/標簽/歸檔」頁面標題中的「分類:」「標簽:」前綴
add_filter( 'wp_title', function($title, $sep, $seplocation) {
if ( is_category() || is_tag() || is_tax() ) {
$title = single_term_title( '', false ); // 純名稱
}
return $title;
}, 10, 3 );
wp_title() 是智能聚合函數,自動適配所有頁面類型。add_theme_support('title-tag') 讓核心接管標題輸出。wp_title,可實現高度定制的 SEO 標題策略。