diff --git a/frontend/src/components/Pages/Post.jsx b/frontend/src/components/Pages/Post.jsx
index 5fb8774..c769f5f 100644
--- a/frontend/src/components/Pages/Post.jsx
+++ b/frontend/src/components/Pages/Post.jsx
@@ -10,7 +10,7 @@ const Posts = () => {
useEffect(() => {
const fetchPosts = async () => {
try {
- const response = await api.get("wp/v2/posts?_fields=id,title,excerpt,content,featured_media");
+ const response = await api.get("wp/v2/posts?_fields=id,slug,title,excerpt,content,featured_media");
const postsData = response.data;
// Récupérer les images en vedette
@@ -66,7 +66,7 @@ const Posts = () => {
cursor: "pointer",
"&:hover": { backgroundColor: "#0e467f", color: "white", transform: "scale(1.05)", boxShadow: 6 },
}}
- onClick={() => navigate(`/post/${post.id}`)}
+ onClick={() => navigate(`/post/${post.slug}`)}
>
{post.image && (
diff --git a/frontend/src/components/PostDetails.jsx b/frontend/src/components/PostDetails.jsx
index 700cf5c..d3e36e5 100644
--- a/frontend/src/components/PostDetails.jsx
+++ b/frontend/src/components/PostDetails.jsx
@@ -4,61 +4,81 @@ import { useParams, useNavigate } from "react-router-dom";
import api from "../api";
const PostDetails = () => {
- const { id } = useParams();
+ const { slug } = useParams(); // ✅ Utilisation correcte du slug
const [post, setPost] = useState(null);
const [image, setImage] = useState(null);
const navigate = useNavigate();
useEffect(() => {
const fetchPost = async () => {
- try {
- const response = await api.get(`wp/v2/posts/${id}?_fields=title,content,featured_media,date`);
- setPost(response.data);
+ if (!slug) {
+ console.error("❌ Erreur : aucun slug fourni !");
+ return;
+ }
- // Récupération de l'image
- if (response.data.featured_media) {
- const mediaResponse = await api.get(`wp/v2/media/${response.data.featured_media}`);
- setImage(mediaResponse.data.source_url);
+ try {
+ console.log(`📢 Requête API pour le slug : ${slug}`);
+
+ // ✅ Requête API correcte
+ const response = await api.get(`wp/v2/posts?slug=${slug}&_fields=id,title,content,featured_media,date`);
+
+ if (response.data.length > 0) {
+ const article = response.data[0]; // ✅ Récupération du premier article trouvé
+ setPost(article);
+ console.log("✅ Article trouvé :", article);
+
+ // ✅ Récupération de l'image en vedette si elle existe
+ if (article.featured_media) {
+ console.log(`📢 Récupération de l'image ID : ${article.featured_media}`);
+ const mediaResponse = await api.get(`wp/v2/media/${article.featured_media}`);
+ setImage(mediaResponse.data.source_url);
+ }
+ } else {
+ console.error("❌ Aucun article trouvé avec ce slug !");
}
} catch (error) {
- console.error("Erreur lors de la récupération de l'article :", error);
+ console.error("❌ Erreur lors de la récupération de l'article :", error);
}
};
fetchPost();
- }, [id]);
+ }, [slug]); // ✅ Dépendance correcte
if (!post) {
return ;
}
return (
-
-