Sitemap news (pour google)
CrazyCat
Member
dans Modifications
Bonjour,
J'ai vu que l'on pouvait créer un sitemap particulier pour les actualités (pour google), j'ai donc créé un news.php basé sur sitemap.php qui génère ce fichier. Il se limite à afficher les infos des articles de moins de 2 jours (c'est ce que demande Google) dans le bon format.
La source est sur gitlab et le voila en action (j'ai volontairement changé la durée de validité pour que vous puissiez avoir un résultat)
Enjoy ![]()
Les news de zeolia.chat sont propulsées par PluXml
Mots clés:
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Bonjour,
Bonne idée !
Tu peux faire le test sur la date dans la boucle foreach. Et calculer la date butoir en dehors de la boucle. Cela évite de remplir le tableau $array d'articles inutiles. Au final cela donne ceci :
Je n'ai pas testé mais cela devrait le faire.
Accès à mon dépôt de plugins et thèmes
installe PluXml plus vite que ton ombre avec kzInstall2
La limite de 2 jours parait arbitraire.
Peut-être vaudrait mieux se limiter aux X derniers articles.
Ce qui te permettra de ne rien publier pendant plus de 2 jours sans que tes visiteurs se retrouvent devant une page blanche.
Accès à mon dépôt de plugins et thèmes
installe PluXml plus vite que ton ombre avec kzInstall2
Concernant la boucle: effectivement j'ai été fainéant, mon but était surtout de valider la création du xml propre et accepté par google, mais je vais appliquer ta recommandation.
En ce qui concerne la limite de 2 jours, c'est bien une préconisation de google (qui est le seul à exploiter ce format), comme dit sur https://developers.google.com/search/docs/crawling-indexing/sitemaps/news-sitemap
Et deux petits points dans ton code (que je n'ai pas testé):
Je ferai des tests ce soir pour créer un code plus propre.
Les news de zeolia.chat sont propulsées par PluXml
Merci pour le lien vers Google.
Il me semble plus pertinent de filtrer les articles par date de publication plutôt que par date de mise à jour.
Cela simplifie le process puisque la date de publication fait partie du nom du fichier article.
Il y a déjà des utilisateurs de PluXml qui se plaignent de la limite de 9999 artcles dans PluXml. Google fixe une limite à 1000 articles. Modestement on peut fixer la limite à 50 articles publiés sur 2 jours.
Pour la date de publication, il me parait pertinent d'ajouter l'heure et les minutes.
Au final, on arrive à ce code :
Je ne saisis pas trop l'intérêt de news:name vs news:title.
Tu peux m'éclairer sur ce point ?
Peut-être utiliser le nom de l'auteur ou de la catégorie ?
Accès à mon dépôt de plugins et thèmes
installe PluXml plus vite que ton ombre avec kzInstall2
Merci pour l'optimisation du code qui fonctionne très bien.
La différence entre news:name et news:title est simple: name est le nom du média (donc le site) quand title est le titre de l'article. J'imagine que c'est pour simplifier le travail de Google dans son rôle d'aggrégateur de nouvelles, chaque actu contient le nom du site plutôt que d'avoir le nom du site de manière globale et de devoir retraiter les données pour accoler cette information. Ils peuvent ainsi régurgiter directement les news avec un effort moindre. Ils sont presque aussi fainéant que moi
Attention, tu as une double-quote inutile dans:
<news:title><?= $plxRecord_arts->f('title') ?>"</news:title>Les news de zeolia.chat sont propulsées par PluXml