WordPressでページタイトルを全て異なった表記にする p15.jp 版

もそさんがこんな記事を書かれていたので私のやつを晒してみます。

ポイントはテンプレート ( index.php とか) に直接書くのではなく、functions.php に書いて呼び出すところ。
こうするとテンプレートの記述もすっきりするし、複数のテンプレートにも簡単に適用できます。(って nic せんせーが言ってた!)

functions.php

function p15GetTitle() {
	// トップページのとき
	if (is_home())
		$title = bloginfo('name');
	// カテゴリアーカイブのとき
	else if (is_category()) {
		$title = wp_title('') . ' カテゴリのアーカイブ';
	}
	// タグアーカイブのとき
	else if (is_tag()) {
		$title = wp_title('') . 'タグのアーカイブ';
	}
	// 年別アーカイブのとき
	else if (is_year()) {
		$title = the_time('Y 年') . 'のアーカイブ';
	}
	// 月別アーカイブのとき
	else if (is_month()) {
		$title = the_time('Y 年 m 月') . 'のアーカイブ';
	}
	// 日別アーカイブのとき
	else if (is_day()) {
		$title = the_time('Y 年 m 月 d 日') . 'のアーカイブ';
	}
	// 検索結果のとき
	else if (is_search()) {
		$title = the_search_query() . 'の検索結果';
	}
	// 404 エラーページのとき
	else if (is_404()) {
		$title = 'ページが見つかりません';
	}
	// その他
	else {
		$title = wp_title('');
	}
	return $title . "\n";
}

1 行目の p15GetTitle は自分で好きな名前をつけておっけーですが、他の部分の名前と被ったりするとよくないので被らないような名前にするといいと思います。

やたら条件分岐しているので不要な部分は else if { } まで削除してください。条件分岐を覚えたてで張り切りすぎた。今は反省している。

index.php などの h1

<h1>
	<?php echo p15GetTitle(); ?>
</h1>

呼び出すのはすごい簡単!これだけ!

header.php の title

<title>
	<?php echo p15GetTitle(); if (!is_home()) { echo " - " . get_bloginfo('name'); } ?>
</title>

title 部分では if (!is_home()) (トップページではないときにの意) のときにハイフンとブログタイトルも表示するようにしています。

「WordPressでページタイトルを全て異なった表記にする p15.jp 版」への3件のフィードバック

  1. トラバありがとうございました。
    もんのすごく参考にさせていただきました。
    タイトル分岐のやり方を書いている記事が意外になかったので、需要あるかな?と思いつつ書いてみたら、私のほしい情報が入ってきて大満足ですw

  2. お役に立てたようでよかったですヽ(・ω・)ノ
    そういえば私もこの条件分岐を書いたときに、模範解答みたいなのが載ってるページは見つけられませんでした。
    基本的なことすぎて PHP ができる人はあえて記事にするようなことじゃないのかもしれませんねー。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です