laravelium/sitemap のインストール

gitlab.com

1.自分の環境はLaravel5.5のため、composer.jsonに以下を記述する。

"require": {
"php": ">=7.0.0",
"aws/aws-sdk-php": "~3.0",
  ・・・・
・・・・
"laravelium/sitemap": "2.7.*" ←★ここを追加
},

 

2.composer updateで必要なファイルをインストール

composer update laravelium/sitemap

 

3.必要なファイルを生成

php artisan vendor:publish --provider="Laravelium\Sitemap\SitemapServiceProvider"

 

ここまで出来れば後は簡単。

 

4.route/web.phpに以下を追加

Route::get('/sitemap', 'SiteMapController@sitemap');

 

5.コントローラーの作成

php artisan make:controller SiteMapController

 

6.後は作成したコントローラーにURLを書いていく

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\App;
use Illuminate\Support\Facades\URL;
use Carbon\Carbon;

class SiteMapController extends Controller
{
    public function sitemap()
    {
        // create new sitemap object
        $sitemap = App::make("sitemap");
        $now = Carbon::now();

        //ここからサイトマップに追加
        $sitemap->add(URL::to('/'), $now, '1.0', 'daily');
        $sitemap->add(URL::to('/XXXXX'), $now, '1.0', 'daily');

 

        //必要があれば、DBからページを読み込み、サイトマップに追加する

       $books = Books::where('open', 2)->where('del', 0)->orderBy('id', 'desc')->get();
      foreach ($books as $book)
      {
            $sitemap->add(URL::to('/viewer/' . $book->book_id), $book->updated_at, '0.8', 'daily');
       }

        return $sitemap->render('xml');
    }
}

 

7.URL/sitemap にアクセスすると、サイトマップが表示される。

 

以上