プログラミングしたり。

HTML/CSS/JavaScript/PHPを中心にWebサイト作ったり。Webサービス作ったり。

[CakePHP]ページのタイトル変更について

CakePHPでサイト構築して、ページタイトルを変更する方法を紹介します。 デフォルトのままだと、「CakePHP: the rapid development php framework:(ViewPath)」となります。 これを任意の値に変える必要があるかと思います。非常に簡単に変えることができます。

デフォルトのままだと、(ViewPath)になると上記で記述しましたが、どういうことかと言いますと、例えばModel:Postがあり、ControllerとしてPostsControllerがあった場合、ViewはViewディレクトリ配下にPostsディレクトリを作成し、その中にindex.ctpなどを置きます。 このときのPostsディレクトリ名がViewPathと書いた部分に当たります。

そして、ページタイトルはapp/View/Layouts/default.ctpに記述があります。

1
2
3
4
<title>
  <?php echo $cakeDescription ?>:
  <?php echo $this->fetch('title'); ?>
</title>

ここから、タイトルは$cakeDescription:$this->fetch('title')が組合わさったものだとわかります。 $cakeDescriptionについては同じファイルの中に$cakeDescription = __d('cake_dev', 'CakePHP: the rapid development php framework');と記述がありますね。不要であれば、削除しましょう。

$this->fetch('title');の部分は各viewのファイルごとにある記述をすることで、ページタイトルを変更することができるようになっています。

例えば、index.ctpのページタイトルを「記事一覧」にしようと思ったら、index.ctpに以下の記述を追加します。

1
2
3
4
<?php
$this->assign('title', '記事一覧');
//assign()の第一引数はfetch()の引数と合わせます。第二引数にページタイトルを記述します。
?>

これで、任意のページタイトルに変更できます。 add.ctpedit.ctpなどの他のviewファイルも同じ記述を追加することで、ページごとにタイトルを変更できます。

cakephp, php

« CakePHPを導入する 正規化について »

Comments