Laravel: карта сайта
как создать sitemap.xml для laravel
Карта сайта - очень важый компонент Вашего сайта, влияющий на результаты ранжирования в органическом поиске. Сегодня мы изучим один из простейших способов внедрения динамической карты сайта в проект, созданный с использованием фреймворка 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 секунд.
В данном случае для каждой ссылки установлены следующие свойства:
- priority: 1.0
- upadte frequency: daily
Вы можете отключить или изменить параметры кеширования, а также редактировать свойства по своему усмотрению.
Внешний вид результирующего файла можно модифицировать в resources/views/vendor/sitemap
.
Спасибо за внимание.