PHPでtitleタグをまとめて管理する

PHP

PHPを使ってtitleタグを一括で管理したいなと思って作ってみました。

titleタグを管理とありますが、改造すればmetaの管理とかもいけそうです。

一括簡易するPHP

<?php

//URLを取得
$url = $_SERVER["REQUEST_URI"];
//サイト名を入れる
$defaultTitle = "サイト名";

//タイトル登録箇所。タイトルが「ぺーじ名|サイト名」になるようにしています。
$titleName = array(
	'/' => $defaultTitle,
	'/about/' => 'このサイトについて' . '|' . $defaultTitle,
	'/contact/' => 'お問い合わせ' . '|' . $defaultTitle,
	'/company/map.html' => 'アクセス|会社情報' . '|' . $defaultTitle
);

//index.htmlでも/終わりでも対応
if(preg_match('/index.html/',$url)){
	$url = str_replace("index.html","",$url);
}

//URLと登録してるタイトルで一致するものをさがす。
foreach ($titleName as $key => $value){
	if($url === $key){
  		$titleTxt = $value;		
	}else {
		$titleTxt = $defaultTitle;
	}
}

//表示
echo '<title>' . $titleTxt . '</title>';

?>

処理としては、URLを取得して、登録してあるディレクトリ(ファイル名)とマッチするものがあったら、そのタイトルテキストを表示するイメージです。
index.htmlでも/で終わるURLも同じものと扱えるようにしています。

何も該当しなかった時はdefaultTitleで指定したテキストが入ります。

各ページに読み込ませる

上記のPHPを例えばtitle.phpとして保存し、titleタグを入れたいページのHTML箇所に以下のように読み込ませます。

<?php
include($_SERVER['DOCUMENT_ROOT'] . '/title.php');
?>

読み込むパスは設置した箇所に変更して下さい。