51 lines
1.2 KiB
TypeScript
51 lines
1.2 KiB
TypeScript
import { MetadataRoute } from "next";
|
|
import { getProducts } from "@/lib/woocommerce";
|
|
|
|
export default async function sitemap(): Promise<MetadataRoute.Sitemap> {
|
|
const baseUrl = process.env.NEXT_PUBLIC_SITE_URL || "https://dev.manoonoils.com";
|
|
|
|
let products: any[] = [];
|
|
try {
|
|
products = await getProducts();
|
|
} catch (e) {
|
|
console.log('Failed to fetch products for sitemap during build');
|
|
}
|
|
|
|
const productUrls = products
|
|
.filter((p) => p.status === "publish")
|
|
.map((product) => ({
|
|
url: `${baseUrl}/products/${product.slug}`,
|
|
lastModified: new Date(),
|
|
changeFrequency: "weekly" as const,
|
|
priority: 0.8,
|
|
}));
|
|
|
|
return [
|
|
{
|
|
url: baseUrl,
|
|
lastModified: new Date(),
|
|
changeFrequency: "daily",
|
|
priority: 1,
|
|
},
|
|
{
|
|
url: `${baseUrl}/products`,
|
|
lastModified: new Date(),
|
|
changeFrequency: "daily",
|
|
priority: 0.9,
|
|
},
|
|
{
|
|
url: `${baseUrl}/about`,
|
|
lastModified: new Date(),
|
|
changeFrequency: "monthly",
|
|
priority: 0.6,
|
|
},
|
|
{
|
|
url: `${baseUrl}/contact`,
|
|
lastModified: new Date(),
|
|
changeFrequency: "monthly",
|
|
priority: 0.6,
|
|
},
|
|
...productUrls,
|
|
];
|
|
}
|