CakePHP

CakePHP3 プラグインなしでサイトマップを作成する方法

 


 

はじめに

今回は、CakePHP3でサイトマップを作成する方法を紹介します。

cakephp3-sitemapというサイトマップを作成するプラグインもあるのですが、2018年8月現在、composer でのインストールができなくなっています。(composer を使わずにインストールすることは可能です。)

手動でインストールするのが面倒だったのと、使用しているテーブル数も少なかったので自分で書いてみました。手順は CakePHP でページを作成する方法と全く同じで、Layout, Controller, View を作成するだけです。

Search Console にて正しく送信できることも確認済みですので、参考になれば嬉しく思います。
 
 

開発環境

CakePHP3.6.10
PHP7.1.19

 

データについて

以下のように仮定してサイトマップを作成していきます。ご自身のサイトに合わせて調整してください。

サイトのURLhttps://example.com/
お知らせページhttps://example.com/info
お問い合わせページhttps://example.com/contact
Itemsテーブルから作成
(1,2,3にはテーブルのidが入ります。)
https://example.com/items/detail/1
https://example.com/items/detail/2
https://example.com/items/detail/3

 
 
 

コントローラーを作成する

/src/Controller/ に SitemapsController.php を作成します。

 

13行目

サイトの URL を https://example.com/ という形で取得しています。

16行目

Items テーブルから必要なカラム item_id のみ取得しています。
 
 
 

XML用のLayoutを作成する

/src/Template/Layout/に sitemap.ctp を作成します。

 

2行目

バージョン・文字コードを設定します。ファイルは UTF-8 で作成する必要があります。

3行目

サイトマップ0.9 を使用することを宣言します。(サイトマップ0.9についてはこちら

4行目

次のステップで作成する View の内容を読み込みます。
 
 
 

View作成

/src/Template/ に Sitemaps/index.ctp を作成します。

 

1~5行目

トップページ https://example.com/ の情報です。
 

タグについて

<loc>必須ページのURL
<changefreq>オプション更新頻度 always, daily, yearly などが設定できます。
<priority>オプション優先度を0.0~1.0で設定できます。デフォルトは0.5です。

 

オプション項目については、検索エンジンは参考情報として扱います。
検索結果の掲載順位にも影響はないようなので、設定しなくても大丈夫です。

詳細はこちらの「XML タグ定義」を確認してください。
 

6~13行目

静的に作成したページ「お知らせ・お問い合わせ」の情報です。

14~19行目

itemsテーブルのデータに基づいて作成します。
 
 
 

Routeを設定

現在、サイトマップのURLは https://example.com/sitemaps/index になっているので、
これを https://example.com/sitemap.xml で表示されるようにします。

/config/routes.php 57行目あたりに追加します。

 

これで完成です!

https://example.com/sitemap.xml にアクセスしてみてください。
XMLが表示されたでしょうか?
 
 
 

Search ConsoleでXML送信

最後にSearch Consoleで XML を送信します。

Step1 : Search Console にログインし、「サイトを選択」→「サイトマップ」を選択します。

Step2 : 「サイトマップの追加/テスト」という赤いボタンがあるのでクリックします。

Step3 : sitemap.xml と入力し、「テスト」を押します。
 
 

 

テストに問題なければ、もう一度「sitemap.xml」を入力し、次は「送信」を押します。
 
これでサイトマップの追加は完了です!
 
 
 
いかがだったでしょうか?

小規模なサイトならば、プラグインを使わずに自分で書くほう簡単かもしれません。(プラグインを使っていないので比較できないのですが。。)

今のところ Search Console 側でもエラーなどの問題は起きていないので、自作おすすめです

 
 

ABOUT ME
Sara
Sara
「わかりやすく・シンプル」をモットーに、スマホアプリ・ウェブアプリの作り方を紹介します。 独学でプログラミングを勉強をしている方、基礎は勉強したけれど次に何をすれば良いか分からない...という方のお役に立てるサイトを目指しています🙂
独学は難しそうと感じたら

 
独学でプログラミングを勉強するのは難しそう、効率的にプログラミングを学びたいという方はオンラインスクールがオススメです。

オンラインスクールを選ぶときのポイント

  • 無料体験があること
  • 個別サポートがあること

自分にあったスタイルを見つけるために、無料体験のご利用をオススメします。(無料体験後に自分には合わないなと感じたらハッキリ断ってしまって問題ありません。)
 
個別サポートもプログラミング学習に挫折しないために重要なポイントです。エラーや困った時にすぐに個別対応をしてくれるスクールを利用して下さい。

ここでは3つのオンラインスクールを紹介します。
全て無料体験がありますので、ぜひ自分に合ったスクールを見つけてみて下さい????
 

1. TechAcademy(テックアカデミー)

オンライン完結で勉強できるスクールで、コースがとても充実しています。チャットで質問すればすぐに回答を得られるのが一番のおすすめポイントです。
オリジナルのサービスやアプリの開発もサポートしてくれるので、開発したいものが決まっている人にもオススメです。

無料体験はこちら

2. CodeCamp(コードキャンプ)

一対一で受講できる個別指導のプログラミングスクールです。
Webデザイン・Webサービス開発・アプリ開発などを幅広く学習することができます。
マンツーマンなので自分のペースで学習できて、質問もその都度できるのがメリットです。

無料体験レッスンはこちら

3. Treehouse

英語でも良い、英語とプログラミングを同時に勉強したいという方は Treehouse がオススメです。月25ドルで始めることができて、たくさんのプログラミング言語を学ぶことができます。
個別サポートはありませんが、掲示板が充実しています。ほとんどの場合、質問してから30分程度で回答を得ることができます。

7日間の無料体験はこちら

COMMENT

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

CAPTCHA