par
Ryle » 13 oct. 2015, 09:18
Bonjour,
Attention, le sitemap n'est pas une page html à destination d'un utilisateur qui la consultera via le navigateur, mais un fichier xml qui est exclusivement destiné aux moteurs de recherche. Il doit donc être constitué comme un fichier xml et respecter la structure attendu pour les fichiers sitemap :
- Pas de balises <br> ou <li> destinées à l'affichage sur le navigateur, les retours à la ligne éventuels se font avec "\n"
- Ton fichier doit impérativement contenir la ligne <?xml version="1.0" encoding="UTF-8"?>
- Tes balises url doivent se trouver à l'intérieur d'une balise <urlset>
En fonction de la fréquence à laquelle des pages sont ajoutées/retirées sur ton site, il peut être préférable de générer un fichier physique sur le serveur de façon régulière plutôt que de générer un flux de façon dynamique à chaque appel du script.
<?php
$pub = "SELECT id FROM `mabase`"; // pas besoin de faire un SELECT * si tu as juste besoin de l'id :)
$req = $bdd->query($pub);
$xml = '<?xml version="1.0" encoding="UTF-8"?>';
$xml.= '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">';
while ($ligne = $req->fetch(PDO::FETCH_ASSOC)) {
$xml.= '<url>' . "\n";
$xml.= ' <loc>http:// ... /annonce?id=' . $ligne['id'] . '</loc>' . "\n";
$xml.= ' <changefreq>weekly</changefreq>' . "\n";
$xml.= ' <priority>0.9</priority>' . "\n";
$xml.= '</url>' . "\n";
}
$xml.= '</urlset>';
echo $xml; // tu peux aussi utiliser cette variable pour coller le contenu dans un fichier au lieu de l'afficher
?>