En la versión 3 de Ghost no está llegando los tags de cada post, para solucionar esto debemos adicionar un segundo parametro a la URL base llamado include y pasar “tags”.
.
Esto nos devolverá dos nuevos keys en la lista de posts, “tags” y “primary_tag” los cuales son un arreglo y un objeto respectivamente.
.
.
Entonces para poder tener disponible estos nuevos keys en nuestra respuesta lo que tendremos que hacer es agregarlo en la variable de entorno GHOST_API, tal cual como se puede ver en la imagen anterior donde está el link en Postman.
.
Luego de tener nuestra variable actualizada, hay que tocar algunos archivos, el primero es: bin/index.js
En la parte de donde obtenemos los posts, yo lo que hice fue agregar en nuestro objeto todo lo que ghost nos ofrece con el “…post”
.
.
const posts = await data.posts.map(post => ({
...post,
title: post.title,
html: post.html,
slug: post.slug,
createdAt: post.created_at,
id: post.id,
desc: post.excerpt,
image: post.feature_image,
}))
.
Lo mismo aplica para el archivo routes/blog/index.json.js
.
const contents = JSON.stringify(posts.map(post => ({
...post,
title: post.title,
slug: post.slug,
desc: post.desc,
createdAt: post.createdAt,
html: post.html,
image: post.image,
id: post.id
})));
Luego de hacer estos cambios, la condición que usamos en el filter para generar cambia ligeramente:
.
<script>
import Post from '../components/Post.svelte'
export let posts;
const filterPost = posts.filter(({primary_tag}) => primary_tag && primary_tag.name === 'general')
</script>
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?