気軽に読めるPHP入門書・PHPスクリプトが動かないときの原因と対策などを紹介します。

  1. WordPressのPHP
  2. 9 view

wp_titleがなくてもtitleタグが生成される理由

WordPressサイトでtitleタグを作るときに使われる関数としてwp_titleが有名でした。たとえば、header.phpを開くと次のようなコードを見かけました。以下はWordPress 4.0の時代に付属していたTwenty Fourteenの例です。

<title><?php wp_title( '|', true, 'right' ); ?></title>

最近のテーマにはwp_titleがない場合も

ところが最近のWordPressテーマではheader.phpを開いてもwp_title関数を見かけません。それどころか、titleタグを作っている部分が見当たらない場合があります。たとえば、Twenty Sixteen 1.3のheader.phpは次のようになっています。

<head>
	<meta charset="<?php bloginfo( 'charset' ); ?>">
	<meta name="viewport" content="width=device-width, initial-scale=1">
	<link rel="profile" href="http://gmpg.org/xfn/11">
	<?php if ( is_singular() && pings_open( get_queried_object() ) ) : ?>
	<link rel="pingback" href="<?php bloginfo( 'pingback_url' ); ?>">
	<?php endif; ?>
	<?php wp_head(); ?>
</head>

titleタグの自動生成

これは、functions.phpにadd_theme_support( ‘title-tag’ );と書くことでtitleタグが自動生成されるためです。Twenty Sixteen 1.3ではfunctions.phpの65行目あたりに次のように記述されています。

add_theme_support( 'title-tag' );

これにより、header.phpなどで明示的にtitleタグを組み立てる必要がありません。

titleタグは自動生成される

titleタグは自動生成される

試しに「add_theme_support( ‘title-tag’ );」をコメントにすると、titleタグが作成されません。

titleタグの出力がうまくいかない

titleタグの出力がうまくいかない

まとめ

最近のWordPressテーマでは、titleタグを作成する際にheader.phpでwp_titleを呼び出す代わりにfunctions.phpで「add_theme_support( ‘title-tag’ );」と記述してtitleタグの自動生成を使っています。テーマを自作するときの参考にしてください。

WordPressのPHPの最近記事

  1. WordPressダッシュボードのメニューを非表示にするremove_menu_page関…

  2. WordPressで中身が空のindex.phpは消しても大丈夫?

  3. WordPressのPHPでショートコードを呼び出す方法

  4. is_categoryとin_categoryの違い

  5. wp_get_attachment_image_src関数の使用例

関連記事

PAGE TOP