WordPressのテーマ開発をしていると、ページタイトルの出力方法について考える場面があります。かつては <title><?php wp_title(); ?></title>
のように wp_title()
関数がよく使われていましたが、WordPress 4.4以降、この関数は非推奨(deprecated)となりました。
wp_title() は非推奨である
wp_title()
関数は依然として使用可能ではありますが、すでに非推奨となっており、現在のWordPressでは使用が推奨されていません。今後のアップデートで削除される可能性もあるため、将来に備えたモダンな実装へ切り替えることが望ましいです。
また、wp_title()
を使っていると、テーマやプラグイン、またはWordPressのバージョンとの組み合わせによっては タイトルが正しく表示されない、重複する、または空になる などの不具合が発生することがあります。特に、SEOプラグイン(例:Yoast SEOやAll in One SEOなど)と併用した際に競合が起きることもあり、トラブルの元になります。
推奨される方法
現在のWordPressテーマ開発では、WordPressにタイトルタグの管理を任せる以下の実装方法が主流です。
functions.php
に title-tag サポートを追加
add_theme_support( 'title-tag' );
この記述を追加することで、WordPressが自動的に適切な <title>
タグを出力してくれます。
header.php
に <title>
を書かず、wp_head()
のみを使用
従来のように <title><?php wp_title(); ?></title>
を書くのではなく、以下のように wp_head()
を呼び出すだけでOKです。
<head>
<?php wp_head(); ?>
</head>
WordPressが動的にタイトルを生成し、SEOにも対応した適切な出力をしてくれます。
カスタマイズしたい場合
より柔軟にタイトルを制御したい場合は、document_title_parts
フィルターを活用することでページごとに細かなカスタマイズが可能です。
add_filter( 'document_title_parts', 'my_custom_title' );
function my_custom_title( $title ) {
if ( is_home() ) {
$title['title'] = 'HOME | サイト名';
}
return $title;
}
また、PHPのコードを直接編集せずに済ませたい場合や、より高度なSEO機能と組み合わせたい場合は、Yoast SEOやAll in One SEOなどのSEOプラグインを使ってタイトルタグを管理することも一つの選択肢です。これらのプラグインは、ページ単位でのタイトル設定やテンプレートの指定などがGUIで簡単にできるため、特に初心者や非エンジニアの方にもおすすめです。
モダンなテーマ開発におけるタイトルタグ管理の結論
現在のWordPressテーマ開発では、wp_title()
を使うのではなく、
add_theme_support( 'title-tag' );
を使って WordPress にタイトル出力を任せる- 必要に応じて
document_title_parts
フィルターでカスタマイズする
という方法が推奨されています。これにより、将来的な非互換を避けつつ、より柔軟でSEOにも優れたテーマを構築することができます。
古いテーマをメンテナンスしている方や、新規でテーマを開発している方は、この方法に移行することをおすすめします。
