PHP: Dinamik XML Sitemap Oluşturmak

Google XML Sitemap GeneratorGeliştirilen her bir proje için, test ve SEO optimizasyon aşamalarında mutlaka geçerli bir sitemap dosyası hazırlanmalı ve Google Webmasters Tools‘dan submit edilmeli.
Geniş veritabanı ve içerik sistemi olan projeler için de, dinamik bir sitemap generator modülü hazırlanmalı.

PHP ile XML dosyası oluşturma konusunu daha önce işlemiştik. Şimdi sitemap formatındaki XML dosyasına database’den alınan içerikleri ekleyeceğiz.

(Serpito.com’da daha önce XML hakkında yazılan makaleleri inceleyebilirsiniz.)

 

“sitemap-generate.php” kodları


<?php

ob_start();

session_start();
require_once("core/mysql.php");  // serpito database class

$xml_path = $_SERVER&#91;'DOCUMENT_ROOT'&#93;."/sitemap.xml";
define("PATH","http://www.mywebsite.com/");

$xml_output = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>";
$xml_output .= '<urlset
xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9
http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">';

$xml_output.="<url>
<loc>".PATH."</loc>
<lastmod>".date("Y-m-d")."</lastmod>
<changefreq>weekly</changefreq>
<priority>1</priority>
</url>";

$s=$db->q("SELECT * FROM user ORDER BY id ASC");

while($row=$db->fassoc($s)){
$url= PATH.$row['username'];
$xml_output .= "\t<url>\n";
$xml_output .= "\t\t<loc>".$url."</loc>\n
\t<lastmod>".date("Y-m-d")."</lastmod>\n";
$xml_output .= "\t\t<changefreq>monthly</changefreq>\n";
$xml_output .= "\t\t<priority>0.8</priority>\n";
$xml_output .= "\t</url>\n";
}

$xml_output .= "</urlset>";
$yaz=fopen($xml_path, "w");
echo "<p>Sayfa &amp;amp;amp;amp;amp;amp; Kanal XML Sitemap Hazırlandı. (".date("d.m.Y").")</p><hr>";

fwrite($yaz,$xml_output);
fclose($yaz);

pingsitemap("http://www.mywebsite.com/sitemap.xml"); // !!! bunu bi sonraki yazıda anlatacağım.

?>

6. satırda require_once ile çekilen mysql.php (Database Class) dosyasıdır.
Kodlardaki 25 – 33. satırlar arası blokta yeralan <url> elementi ve alt elementleri  database bağlantısı ile dinamik olarak üretilir.

44. satırda yeralan pingsitemap() fonksiyonunu bi sonraki konuda ele aldım. Bu fonksiyon ile dinamik olarak üretilen güncel sitemap dosyasını, Google, Bing ve Yahoo arama motorlarına ping atarak, projemizdeki son güncellemelerden anında haberdar ediyoruz.

3 thoughts on “PHP: Dinamik XML Sitemap Oluşturmak

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir