x
This commit is contained in:
1 parent
be0ee265d5
commit
10131e08bf
11 files changed
+415
-88
No files matched your search
@@ -1,5 +1,7 @@
|
||||
import { MetadataRoute } from 'next';
|
||||
import { getCategories, getProducts, getArticlesResult } from '../lib/cms';
|
||||
import { generateProductSlug } from '../lib/slugify';
|
||||
import { resolveLocalized } from '../lib/localization';
|
||||
|
||||
const baseUrl = process.env.NEXT_PUBLIC_SITE_URL || 'http://localhost:3000';
|
||||
|
||||
@@ -49,15 +51,27 @@ export default async function sitemap(): Promise<MetadataRoute.Sitemap> {
|
||||
},
|
||||
}));
|
||||
|
||||
const productRoutes: MetadataRoute.Sitemap = products.map((product) => ({
|
||||
url: `${baseUrl}/th/products/${product.id}`,
|
||||
lastModified: new Date(),
|
||||
changeFrequency: 'daily',
|
||||
priority: 0.9,
|
||||
alternates: {
|
||||
languages: createAlternates(`/products/${product.id}`),
|
||||
},
|
||||
}));
|
||||
const productRoutes: MetadataRoute.Sitemap = products.map((product) => {
|
||||
const alternates: Record<string, string> = {};
|
||||
let thSlug = '';
|
||||
|
||||
for (const lang of languages) {
|
||||
const localizedName = resolveLocalized(product.name, lang) || (product.brand ? product.brand.name : 'product');
|
||||
const slug = generateProductSlug(localizedName, product.id);
|
||||
alternates[lang] = `${baseUrl}/${lang}/products/${slug}`;
|
||||
if (lang === 'th') thSlug = slug;
|
||||
}
|
||||
|
||||
return {
|
||||
url: `${baseUrl}/th/products/${thSlug}`,
|
||||
lastModified: new Date(),
|
||||
changeFrequency: 'daily',
|
||||
priority: 0.9,
|
||||
alternates: {
|
||||
languages: alternates,
|
||||
},
|
||||
};
|
||||
});
|
||||
|
||||
const articleRoutes: MetadataRoute.Sitemap = [];
|
||||
if (articlesResult.ok && articlesResult.data) {
|
||||
|
||||
Reference in new issue
Block a user