Soner USTA

PHP Developer

PHP PDO ile Dinamik Sitemap.xml Oluşturma 0 0 191

PHP 01 Ağustos 2018

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 ama ise sitemap.php dosyanıza sitemap.xml olarak yönlendirme yapmaktır.

Kodlara bu linkten erişebilirsiniz.

https://paste.ee/p/qCNor

İyi Çalışmalar.


Yorumlar

Henüz Yorum Yazılmamış.


Yorum Gönder

E-Posta Adresiniz Gözükmez!