header
Informatique

Updater sa sitemap dynamiquement en php

parArkenle 14.Feb.2009

Pour optimiser son référencement, rien de mieux que de créer une sitemap. Le challenge est ensuite d'arriver à garder sa sitemap en phase avec le contenu de son site...très fastidieux sans automatisation de la tâche, puisqu'il faut alors soit le faire manuellement après chaque mise à jour de votre site (nouveau billet dans le blog, nouvel article, etc...), ou systématiquement faire regénérer la sitemap sur des sites tels que xml-sitemaps.com.

Pour régler ce problème et entièrement automatiser la manip, j'ai pour ma part créé une classe sitemapUtils qui a cette gueule :

class sitemapUtils
{
    public static function appendPage($url, $priority, $changefreq)
    {
        //open xml sitemap
        $xmlFile = simplexml_load_file(sfConfig::get('sf_web_dir') . '/sitemap.xml');
        $xml = new SimpleXMLElement($xmlFile->asXml());
        $newURL = $xml->addChild('url');
        $newURL->addChild('loc', $url);
        $newURL->addChild('priority', $priority);
        $newURL->addChild('changefreq', $changefreq);
       
        //save file
        $handle = fopen(sfConfig::get('sf_web_dir') . '/sitemap.xml', 'w+');
        fwrite($handle, $xml->asXml());
        fclose($handle);
    }
}

Ensuite il suffit de l'appeler au niveau du backend dans les modules nécessitant une modif de la sitemap (module d'ajout de billet, d'ajout d'article, etc...) :

.
..
...
$blogEventToAdd->save();

//update sitemap
sitemapUtils::appendPage('http://www.example.com/blog/' . $blogEventToAdd->getTitle() . '.html', '0.80', 'weekly');

Simple et efficace.


Tags : sitemap  référencement  optimisation  update  automatiser 
commentaires
Aucun commentaire


Code de confirmation
Confirmer

Les cigares, vous les aimez comment ?
23%
70%
7%