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()) (トップページではないときにの意) のときにハイフンとブログタイトルも表示するようにしています。

この記事が最後に更新されたのは2008年05月02日 17:01です。

このページの先頭へ戻る

コメント

  1. もそ より:

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

  2. 石澤 りん より:

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

コメントをどうぞ

(公開されません)

コメントに Gravatar または Twitter アイコンを表示しています。
よろしければ登録してみてください。

トラックバック

この記事は p15.jpWordpressでページタイトルを全て異なった表記にする p15.jp 版 です。
関連が低いと判断したトラックバックは予告無く削除させていただく場合がありますのでご了承ください。

このページの先頭へ戻る