<title>タグを表示する
作成しているテーマで<title>
タグを表示するには、下記のような方法があります。
wp_title()
を使う
wp_title()
を使うと、現在のページのタイトルを自動的に表示してくれます。
1 |
<title><?php wp_title(); ?></title> |
下記はwp_title()
を使った場合のタイトルの表示例です。
種類 | 表示される内容 | 表示例 |
---|---|---|
トップページ | (何も表示しない) | |
投稿、固定ページ | » 記事タイトル | » テスト投稿 |
カテゴリー、タグ | » カテゴリーまたはタグ名 | » テストカテゴリー |
カスタム投稿タイプ | » カスタム投稿タイプ名 | » 映画 |
カスタムタクソノミー | » タクソノミーラベル名 » タクソノミー名 | » 俳優 » 山田太郎 |
作成者 | » 作成者名 (※ブログ上の表示名) |
» テストユーザー |
年アーカイブ | » 年 | » 2015 |
月アーカイブ | » 年 » 月 | » 2015 » 1月 |
日アーカイブ | » 年 » 月 » 日 | » 2015 » 1月 » 01 |
検索 | » 検索結果: » 検索語 | » 検索結果: » テスト |
ページが見つからない(404) | » ページが見つかりませんでした | » ページが見つかりませんでした |
bloginfo( 'name' )
と組み合わせて下記のようにすると「サイト名 » 記事タイトル」のように表示されます。
1 |
<title><?php bloginfo( 'name' ); ?><?php wp_title(); ?></title> |
wp_title()
の動作を変更して使う
wp_title()
では区切り文字や位置を変える設定ができます。形式は「wp_title( 区切り文字 );
」か「wp_title( 区切り文字, true, 'right' );
」です。
例えば wp_title( '|' );
とすると、「»」が「|」に変わります。また、wp_title( '|', true, 'right' );
とすると、区切り文字が右に移動するなど、表示が反転します。
下記は「wp_title( '|', true, 'right' );
」とした場合の例です。
種類 | 表示される内容 | 表示例 |
---|---|---|
トップページ | (何も表示しない) | |
投稿、固定ページ | 記事タイトル | テスト投稿 | |
カテゴリー、タグ | カテゴリーまたはタグ名 | テストカテゴリー | |
カスタム投稿タイプ | カスタム投稿タイプ名 | 映画 | |
カスタムタクソノミー | » タクソノミーラベル名 » タクソノミー名 | 山田太郎 | 俳優 | |
作成者 | 作成者名 (※ブログ上の表示名) |
テストユーザー | |
年アーカイブ | 年 | | 2015 | |
月アーカイブ | 月 | 年 | | 1月 | 2015 | |
日アーカイブ | 日 | 月 | 年 | | 01 | 1月 | 2015 | |
検索 | 検索語 | 検索結果: | | テスト | 検索結果: | |
ページが見つからない(404) | ページが見つかりませんでした | | ページが見つかりませんでした | |
bloginfo( 'name' );
と組み合わせて下記のようにすると「記事タイトル | サイト名」のように表示されます。
1 |
<title><?php wp_title(); ?><?php bloginfo( 'name' ); ?></title> |
ただ上記の表示例を見るとわかるように、'right'で反転してしまうと日付関連や検索の表示が不自然になるのでできれば下記のような形のほうがよいのではないかと思います。
1 2 3 4 5 6 7 |
<title> <?php if ( is_home() ) { // トップページ ?> <?php bloginfo( 'name' ); ?> <?php } else { // その他 ?> <?php wp_title( '' ); ?> | <?php bloginfo( 'name' ); ?> <?php } ?> </title> |
これならトップページの時はサイト名のみ、投稿などは「投稿タイトル | サイト名」、日付関連は「年 月 日 | サイト名」、検索は「検索結果: 検索語 | サイト名」となります。
下記も参考になるかもしれません。
add_theme_support( 'title-tag' )
を使う
WordPress 4.1から、タイトルを自動生成する新しい機能(タイトルタグ)が追加されました。この機能を有効にするには、functions.phpに下記のように記載します。
1 |
add_theme_support( 'title-tag' ); |
WordPress 4.4時点での表示は下記のとおりです。
種類 | 表示される内容 | 表示例 |
---|---|---|
トップページ | サイト名 – キャッチフレーズ | テストサイト – テスト用のサイトです。 |
投稿、固定ページ | 記事タイトル – サイト名 | テスト投稿 – テストサイト |
カテゴリー、タグ | カテゴリーまたはタグ名 – サイト名 | テストカテゴリー – テストサイト |
カスタム投稿タイプ | カスタム投稿タイプ名 – サイト名 | 映画 – テストサイト |
カスタムタクソノミー | タクソノミー名 – サイト名 | 山田太郎 – テストサイト |
作成者 | 作成者名 – サイト名 (※ブログ上の表示名) |
テストユーザー – テストサイト |
年アーカイブ | 年 – サイト名 | 2015年 – テストサイト |
月アーカイブ | 年月 – サイト名 | 2015年1月 – テストサイト |
日アーカイブ | 年月日 – サイト名 | 2015年1月1日 – テストサイト |
検索 | "検索語"の検索結果 – サイト名 | "テスト"の検索結果 – テストサイト |
ページが見つからない(404) | ページが見つかりませんでした – サイト名 | ページが見つかりませんでした – テストサイト |
テーマのfunctions.phpに1行追加するだけでここまで自動生成してくれるため、できれば積極的に使っていったほうがよいのではと思います。
※ ただしWordPress本体の過去のソースコードを見る限りWordPress 4.1〜4.3までは「wp_title( '|', true, 'right );
」とほぼ同じだったようなので注意してください。
WordPress 4.4以降で「–」の区切りを変更したい場合は、functions.phpに下記のように記載すると変更できます。
1 2 3 4 5 6 7 |
/** * タイトルの区切り文字を変更します。 */ function custom_document_title_separator( $sep ) { return '|'; } add_filter( 'document_title_separator', 'custom_document_title_separator' ); |
※ WordPress 4.4以降でのみ動作します。
補足
- 「
wp_title()
は非推奨」と記載のあるブログなどがありますが、WordPress 4.4の正式版では非推奨にはなっていません。引き続き従来のwp_title()
を使ったタイトル表示の方法を使うこともできます。- とても技術的な話になりますが、これはWordPressのソースコードの更新履歴を見るとわかります( Template: Un-deprecate
wp_title()
)。「Un-deprecated」というのは「非推奨にしないようにした」という意味で、4.4の開発中は非推奨にしようとしていたようですが正式版では取り消されています。
- とても技術的な話になりますが、これはWordPressのソースコードの更新履歴を見るとわかります( Template: Un-deprecate