dr.Brain

doctor Brain

мир глазами веб-разработчика

Laravel: карта сайта

как создать sitemap.xml для laravel

dr.Brain

время чтения 2 мин.

Photo by Andrew Neel on Unsplash

Карта сайта - очень важый компонент Вашего сайта, влияющий на результаты ранжирования в органическом поиске. Сегодня мы изучим один из простейших способов внедрения динамической карты сайта в проект, созданный с использованием фреймворка Laravel.

Для этого мы воспользуемся простой и понятной библиотекой Laravelium/Sitemap .

Для начала, установим эту библиотеку с помощью менеджера зависимостей composer:

composer require laravelium/sitemap

Теперь опубликуем файлы полученной библиотеки:

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

Эта команда скопирует следующие файлы, которые можно будет редактировать по своему усмотрению:

[/config/sitemap.php]
[/resources/views/vendor/sitemap]
[/public/vendor/sitemap]

Создадим контроллер:

php artisan make:controller SitemapController

В нашем примере, мы полагаем, что в карте сайта (sitemap.xml) должно оказаться все содержимое раздела blog. Для этого поместим приведенный ниже код в только что созданный SitemapController:

use App\Blog;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\App;

class SitemapController extends Controller
{
    public function sitemap () {

        // create new sitemap object
        $sitemap_contents = App::make("sitemap");
        // set cache
        $sitemap_contents->setCache('laravel.sitemap_contents', 3600);
        // get all posts from db
        $blogs = Blog::where('published',1)->orderBy('created_at', 'desc')->get();
        // add every post to the sitemap
        foreach ($blogs as $blog)
        {
            $url = url('blog/'.$blog->id);
            $sitemap_contents->add($url, $blog->updated_at,'1.0','daily');
        }
        // show your sitemap (options: 'xml' (default), 'html', 'txt', 'ror-rss', 'ror-rdf')
        return $sitemap_contents->render('xml');
    }
}

Функция sitemap разместит в карте сайта все опубликованные заметки из раздела blog, кроме того карта сайта будет кэшироваться на 3600 секунд.

В данном случае для каждой ссылки установлены следующие свойства:

  1. priority: 1.0
  2. upadte frequency: daily

Вы можете отключить или изменить параметры кеширования, а также редактировать свойства по своему усмотрению.

Внешний вид результирующего файла можно модифицировать в resources/views/vendor/sitemap.


Спасибо за внимание.

Новые публикации

Далее

Категории

О нас

Frontend & Backend. Статьи, обзоры, заметки, код, уроки.