Display categories
This commit is contained in:
@@ -68,16 +68,67 @@ async function generateData() {
|
||||
modified: page.modified
|
||||
}));
|
||||
|
||||
// Create author-post mapping
|
||||
const authorPosts = {};
|
||||
posts.forEach(post => {
|
||||
if (post.status === 'publish') {
|
||||
const author = post._embedded?.author?.[0];
|
||||
if (author) {
|
||||
const authorSlug = author.slug;
|
||||
if (!authorPosts[authorSlug]) {
|
||||
authorPosts[authorSlug] = {
|
||||
id: author.id,
|
||||
name: author.name,
|
||||
slug: author.slug,
|
||||
description: author.description || '',
|
||||
avatar: author.avatar_urls || {},
|
||||
link: author.link,
|
||||
posts: []
|
||||
};
|
||||
}
|
||||
authorPosts[authorSlug].posts.push({
|
||||
id: post.id,
|
||||
title: post.title.rendered,
|
||||
slug: post.slug,
|
||||
date: post.date,
|
||||
excerpt: post.excerpt.rendered,
|
||||
featured_image: post._embedded?.['wp:featuredmedia']?.[0]?.source_url || '',
|
||||
categories: (post._embedded?.['wp:term']?.[0] || []).map(cat => ({
|
||||
id: cat.id,
|
||||
name: cat.name,
|
||||
slug: cat.slug
|
||||
})),
|
||||
tags: (post._embedded?.['wp:term']?.[1] || []).map(tag => ({
|
||||
id: tag.id,
|
||||
name: tag.name,
|
||||
slug: tag.slug
|
||||
}))
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
// Save data as JSON files
|
||||
fs.writeFileSync(path.join(OUTPUT_DIR, 'posts.json'), JSON.stringify(posts, null, 2));
|
||||
fs.writeFileSync(path.join(OUTPUT_DIR, 'pages.json'), JSON.stringify(publishedPages, null, 2));
|
||||
// Extract category descriptions
|
||||
const categoriesWithDescriptions = categories.map(cat => ({
|
||||
id: cat.id,
|
||||
name: cat.name,
|
||||
slug: cat.slug,
|
||||
description: cat.description || '',
|
||||
count: cat.count || 0
|
||||
}));
|
||||
|
||||
// Also save to wordpress directory
|
||||
fs.writeFileSync(path.join(OUTPUT_DIR, 'categories.json'), JSON.stringify(categories, null, 2));
|
||||
fs.writeFileSync(path.join(OUTPUT_DIR, 'tags.json'), JSON.stringify(tags, null, 2));
|
||||
fs.writeFileSync(path.join(OUTPUT_DIR, 'authors.json'), JSON.stringify(authors, null, 2));
|
||||
fs.writeFileSync(path.join(OUTPUT_DIR, 'author-posts.json'), JSON.stringify(authorPosts, null, 2));
|
||||
fs.writeFileSync(path.join(OUTPUT_DIR, 'navigation.json'), JSON.stringify(navigationData, null, 2));
|
||||
|
||||
console.log(`✅ Fetched ${posts.length} posts, ${publishedPages.length} pages, ${categories.length} categories, ${tags.length} tags, ${authors.length} authors`);
|
||||
console.log(`✅ Generated navigation data with ${navigationData.length} items`);
|
||||
}
|
||||
|
||||
generateData().catch(console.error);
|
||||
generateData().catch(console.error);
|
||||
|
||||
Reference in New Issue
Block a user