Initial Commit
This commit is contained in:
47
app/Http/Controllers/SitemapController.php
Normal file
47
app/Http/Controllers/SitemapController.php
Normal file
@@ -0,0 +1,47 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use Spatie\Sitemap\Sitemap;
|
||||
use Spatie\Sitemap\Tags\Url;
|
||||
|
||||
use App\Models\Post;
|
||||
use App\Models\Category;
|
||||
use App\Models\User;
|
||||
|
||||
class SitemapController extends Controller
|
||||
{
|
||||
public function index()
|
||||
{
|
||||
$sitemap = Sitemap::create();
|
||||
|
||||
$sitemap->add(
|
||||
Url::create('/')
|
||||
->setPriority(1.0)
|
||||
->setChangeFrequency(Url::CHANGE_FREQUENCY_DAILY)
|
||||
);
|
||||
|
||||
$sitemap->add(
|
||||
Url::create('/contact')
|
||||
->setPriority(0.8)
|
||||
->setChangeFrequency(Url::CHANGE_FREQUENCY_MONTHLY)
|
||||
);
|
||||
|
||||
// Nur Posts
|
||||
$posts = Post::where('published', true)->get(); // falls du ein Feld dafür hast
|
||||
foreach ($posts as $post) {
|
||||
$url = route('read_post', $post->slug);
|
||||
|
||||
$sitemap->add(
|
||||
Url::create($url)
|
||||
->setPriority(0.7)
|
||||
->setChangeFrequency(Url::CHANGE_FREQUENCY_WEEKLY)
|
||||
->setLastModificationDate($post->updated_at)
|
||||
);
|
||||
}
|
||||
|
||||
return response($sitemap->render(), 200)
|
||||
->header('Content-Type', 'application/xml');
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user