كيفية إنشاء خريطة موقع (Sitemap) في Laravel
تستخدم محركات البحث خرائط المواقع (sitemaps) للعثور على صفحاتك وفهرستها. خريطة الموقع هي ملف XML، وهي تخبر Google و Bing بالعناوين (URLs) الموجودة في موقعك.
يمكنك بناء خريطة موقع في Laravel باستخدام حزمة Spatie Sitemap.
اتبع هذه الخطوات لإعدادها.
تثبيت الحزمة قم بتشغيل هذا الأمر في واجهة السطر البرمجي (terminal):
composer require spatie/laravel-sitemapإنشاء متحكم (Controller) قم بإنشاء متحكم جديد لمعالجة المنطق البرمجي:
php artisan make:controller GenerateSitemapكتابة المنطق البرمجي افتح المتحكم الجديد وأضف هذا الكود:
namespace App\Http\Controllers;
use Spatie\Sitemap\Sitemap;
use Spatie\Sitemap\Tags\Url;
use App\Models\Post;
class GenerateSitemap extends Controller
{
public function index()
{
$sitemap = Sitemap::create();
$sitemap->add(
Url::create('/')
->setPriority(1.0)
->setChangeFrequency(Url::CHANGE_FREQUENCY_DAILY)
);
Post::with('category')
->where('status', 1)
->latest()
->get()
->each(function ($post) use ($sitemap) {
$sitemap->add(
Url::create($post->category->slug . '/' . $post->slug)
->setLastModificationDate($post->updated_at)
->setPriority(0.9)
->setChangeFrequency(Url::CHANGE_FREQUENCY_WEEKLY)
);
});
$sitemap->writeToFile(public_path('sitemap.xml'));
return back()->with('success', 'Sitemap Generated!');
}
}
ماذا يفعل هذا الكود:
- يقوم بإنشاء كائن (object) جديد لخريطة الموقع.
- يضيف الصفحة الرئيسية بأولوية عالية.
- يقوم بالمرور عبر منشورات قاعدة البيانات الخاصة بك.
- يضيف رابط كل منشور إلى الملف.
- يحفظ الملف في مجلد public الخاص بك باسم sitemap.xml.
ستكون خريطة موقعك متاحة على yourdomain.com/sitemap.xml.
يساعد هذا محركات البحث في العثور على محتواك الجديد بسرعة.
المصدر: https://dev.to/mindwarezone/how-to-generate-a-sitemap-in-laravel-a-complete-guide-4go6