CakePHP3でkeywords、DescriptionをHTMLヘルパーを使って設定する
CakePHP3では metaタグを編集する HTMLヘルパーが用意されている
metaタグの keywords、DescriptionをHTMLヘルパーを使って設定する方法
CakePHP3で keywords、Descriptionを設定する方法を解説します。
CakePHP3には最初から metaタグを編集する HTMLヘルパーが組み込まれています。
それを利用してメタタグの keywords、Descriptionを編集します。
metaタグが編集されるレイアウトファイルを確認
まずはじめに、metaタグが編集される場所を確認します。
metaタグが編集されるファイルは、下記のレイアウトファイルになります。
/src/Template/Layout/default.ctp
このレイアウトファイルの 32行目あたりに「<?= $this->fetch(‘meta’) ?>」という記述があります。
これが metaタグを出力する「fetch()」になります。
ここに編集する値を、各ページごとのテンプレートで指定する、という処理になります。
metaタグの値を指定するテンプレートファイルを編集
値を指定するテンプレートは
/src/Template/Topics/view.ctp
などのテンプレートファイルに下記のコードを記述します。
記述する metaタグのヘルパーの基本形は以下のようになります。
1 |
<?= $this->Html->meta("属性","値",["block"=>true]); ?> |
具体的に「keywords」「description」を指定すると以下のようになります。
1 2 |
<?= $this->Html->meta("keywords","キーワード",["block"=>true]); ?> <?= $this->Html->meta("description","ディスクリプション",["block"=>true]); ?> |
1つ目のパラメーターが、metaタグの「name(属性)」の値を指定するもので「keywords」は「キーワード」、「description」は「ディスクリプション」を指定する箇所になります。
2つ目のパラメーターが、metaタグの「content」の値を指定する箇所になります。
出力結果は以下のようになります。
1 2 |
<meta name="keywords" content="キーワード"/> <meta name="description" content="ディスクリプション"/> |
また、3つ目のパラメーターは、ブロック化をするのか、しないのかを指定する箇所になります。
「ブロック化」のデフォルトは、「"block"=>false
」の「ブロック化をしない」になっています。
そのため、デフォルトの設定では、metaタグが編集される場所がテンプレートファイルに「<?= $this->fetch(‘meta’) ?>」を記述した場所になります。
そのため、「<body>」と「</body>」の間に出力され、metaタグの役割を果たしません。
そのため、「"block"=>true
」を記述し、headタグ内に記述してある「<?= $this->fetch(‘meta’) ?>」の場所にまとめて出力されるようにします。
これが、「ブロック化を有効にする」指定です。
基本的に metaタグを出力する処理は「"block"=>true
」も記述する、という認識で問題ありません。
ちなみに、「"block"=>true
」が指定されている場合は、echoがなくても metaタグに出力することができます。
1 2 3 4 5 6 7 8 |
// 出力される $this->Html->meta("description","ディスクリプション",["block"=>true]); // 出力される echo $this->Html->meta("description","ディスクリプション"); // 出力されない $this->Html->meta("description","ディスクリプション"); |
サイト全体に共通する処理をページごとに切り替える処理
今回は、サイト全体に共通して指定をする必要はあるものの、ページごとにそれぞれ違うテキストを切り替えて編集していく必要がある metaタグの「keywords」「description」を指定する方法を解説しました。
同じような考え方をする仕組みとして、下記の記事で書いている titleタグ、h1タグの値を指定する方法や、使用する JavaScriptや CSSをページごとに設定する方法、パンくずを指定する方法、OGPを指定する方法などにも活用することができます。
CakePHP3で /Layout/defult.ctpにある titleタグ、h1タグを編集する方法
CakePHP3でページごとに読み込むJavaScript、CSSを変える処理の解説
CakePHP3のOGPはHTMLヘルパーの$this->Html->meta()を使って設定
CakePHP3にOGPをfetch、asignを利用してテンプレートごとに指定する方法を解説
CakePHP3でパンくずの指定は HTMLヘルパーを使って指定する方法を解説
これらは、レイアウトファイルに変数を指定しておき、そこに編集する値を各ページ用のテンプレートファイルで指定する、という仕組みです。
CakePHP3の関連記事
CakePHP4のCSS、JavaScript、画像のブラウザへのキャッシュをコントロールするCakePHP3でレコードを保存(追加、更新、Insert、Update)する複数の方法を紹介
CakePHP3でモデルなしフォームからCSVをアップロードしレコードを更新する方法解説
CakePHP3でPHP Simple HTML DOM Parserを使ってスクレイピングする方法
CakePHP3のInsert On Duplicate Key Update(upsert)構文を解説・バルク処理も
CakePHP3の1対多での連携を中間テーブルを使った多対多の連携に変更するときの手順
CakePHP3でデフォルトのソート条件を設定してユーザの選択肢たソート条件を有効にする方法
CakePHP3で Ajaxを使う方法の解説。3.6以降対応。Successとthenの両方を解説。
CakePHP3でパンくずの指定は HTMLヘルパーを使って指定する方法を解説
CakePHP3にOGPをfetch、asignを利用してテンプレートごとに指定する方法を解説
その他の「CakePHP3」に関する記事一覧
GoogleAdwords
GoogleAdwords
この記事が参考になったと思いましたらソーシャルメディアで共有していただけると嬉しいです!
関連記事
-
-
CakePHP3にOGPをfetch、asignを利用してテンプレートごとに指定する方法を解説
CakePHP3でOGPを設定する方法を解説。fetch、assignを使用しレイアウトファイルに編集した変数にテンプレートファイルから値を指定する。これを利用してOGPを編集する。
-
-
CakePHP3の検索プラグイン「friendsofcake/search」の様々な検索の仕方の実装方法
CakePHP3で検索をするプラグイン「friendsofcake/search」の検索条件のカスタマイズ方法の解説。検索項目を増やしたり、以上、以下での検索や、チェックボックスによる検索の方法などを解説。
-
-
CakePHP3でWarning Error: SplFileInfo::openFile()エラーが発生した場合の対処方法
CakePHP3のキャッシュファイルのパーミッションエラー Error: SplFileInfo::openFile()が発生した場合の対応方法解説。app.phpにキャッシュファイルのパーミッション設定を行い、既存のファイルは削除。
-
-
CakePHP 2.3でファイルのアップロード処理を作る
CakePHPでプラグインを使わないファイルアップロード処理を解説します。簡単です。DBにファイルを格納する方法も。
-
-
CakePHP3のタイムゾーンを協定世界時UTCから日本標準時間JSTにずれを変更する方法
CakePHP3の標準設定のタイムゾーンは「UTC(協定世界時)」に設定されている。これを日本標準時に変更する方法(app.php、bootstrap.phpの変更方法)の解説。
-
-
CakePHP3のInsert On Duplicate Key Update(upsert)構文を解説・バルク処理も
CakePHP3で Insert … On Duplicate Key Update構文(upsert)を実行する方法を解説。バルク処理の方法も用意されているため大量処理の場合も対応可能。
-
-
CakePHP3のCakeDC/Usersのバリデーションのカスタマイズ方法解説
CakeDC謹製Usersプラグインの紹介。Usersのカスタマイズとして入力項目のバリデーションの変更を、プラグインのファイルは触らずオーバーライドにより実装する方法を解説する。
-
-
CakePHP3でパンくずの指定は HTMLヘルパーを使って指定する方法を解説
CakePHP3でパンくずの指定方法の解説。2つのヘルパーがあるが簡単なHTMLヘルパーを使った方法を、実際の状況に合わせて3つのパターン(エレメント化、ブロック化)にして解説。
-
-
CakePHP3のfriendsofcake/searchでツリーカテゴリーの子階層も含めて検索する方法
CakePHP3のツリービヘイビアを使ったツリーカテゴリーの子階層も含めての検索を検索プラグイン「friendsofcake/search」を使って実現する方法を解説しました。
-
-
CakePHP3のCakeDC/Users、Authでログインなしでもアクセスを許可する設定
CakePHP3の Authコンポーネントや CakeDC/Usersプラグインなどを利用したユーザ管理・認証システムにおいて、ログインしていなくても見ることができるページの設定方法を解説。