Merhabalar arkadaşlar bugün sizlere benim de kullanmış dinamik sitemap.php dosyasını sizlere nasıl yapıldığını ve kullanımını göstereceğim.
<?php
include 'config.php'; ## Burada config dosyamızın yani veritabanı bağlantısı yapılan dosyamızı çağırıyoruz isterseniz direk olarak sayfa üzerindede bağlantı yapabilirsiniz.Ben direkt olarak include ettim sayfayı.
## Xml olarak göstermek için girilen komut
header("Content-Type: text/xml");
## Sitemap Bilgileri
echo '<?xml version="1.0" encoding="UTF-8"?>';
echo '
<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">
';
## Site Menüleri
## Menüler dinamik değil el ile girdim çünkü benm veritabımda menüler isminde bir tablo yoktu zaten sitede menü de olmadığı için el ile girmek daha makul gözüktü
echo '
<url>
<loc>https://snrtr.com/</loc>
<lastmod>'.date("Y").'-'.date("m").'-'.date("d").'T'.date("H:i:s").'+00:00</lastmod>
<changefreq>daily</changefreq>
<priority>0.5000</priority>
</url>
<url>
<loc>https://snrtr.com/hakkimda</loc>
<lastmod>'.date("Y").'-'.date("m").'-'.date("d").'T'.date("H:i:s").'+00:00</lastmod>
<changefreq>daily</changefreq>
<priority>0.8000</priority>
</url>
<url>
<loc>https://snrtr.com/iletisim</loc>
<lastmod>'.date("Y").'-'.date("m").'-'.date("d").'T'.date("H:i:s").'+00:00</lastmod>
<changefreq>daily</changefreq>
<priority>0.8000</priority>
</url>
';
## Makaleleri Listele
## Bu alanda ise PDO ile verilerimizi veritabanından çekiyoruz Bu alanda değişeceğiniz yerler.
## Tablo adınızı girmelisiniz eğerki sitenizde bir şart var ise onu girmelisiniz benim sitemde yazı_onay=0 olan yazıları göstermediğim için bir şart belirledim sizlerde şart yoksa kaldırabilirsiniz.
## yazi_id yazan yere ise çekeceğiniz verilerin id sinin bulunduğu sutunun ismini giriniz.
$yazisor=$db->prepare("SELECT * FROM tablo_adi where yazi_onay=:yazi_onay ORDER BY yazi_id DESC");
$yazisor->execute(array(
'yazi_onay' => 1
));
while($yazicek=$yazisor->fetch(PDO::FETCH_ASSOC)){
## Alttaki alanda ise değişeceğiniz yerler ise seo ve yazi_id kısımları bunları neye göre değişeim diye soracaksanız
## Sitenizde bulunan yazılara nasıl eriştiğiniz yani adres satırında nasıl gözüktüğüne bakarak bu ayarlamaları gerçekleştireceksiniz.
## Benim yazılarımda kullanmış olduğum seo ve sonuna eklenen yazi_id olduğu için bu alanı bu şekilde modifiye etttim.
## Tüm ayarlamaları doğru bir şekilde yaparsanız dosyamız sorunsuz bir şekilde çalışacaktır.
echo'
<url>
<loc>https://snrtr.com/'.$yazicek["seo"]."-".$yazicek["yazi_id"].'</loc>
<lastmod>'.date("Y").'-'.date("m").'-'.date("d").'T'.date("H:i:s").'+00:00</lastmod>
<changefreq>daily</changefreq>
<priority>0.5000</priority>
</url>
';
}
echo '</urlset>';
?>
Bundan sonra ise yapacağınız tek işlem .htacces dosyanıza şu kodu yapıştırmanızdır.
RewriteRule ^sitemap.xml$ sitemap.php [NC,L]
Bu kodun yazmamızın amacı ise sitemap.php dosyanıza sitemap.xml olarak yönlendirme yapmaktır.