Mini Php Örnekleri – Sitemap Generator

sitemap

WP kullanıcıları çoğu zaman XML Sitemap uygulamasını kullandıkları için Google ya da diğer arama motorları için Sitemap ile uğraşmalarına gerek yoktur.Ancak bazı durumlarda bu bizim düşündüğümüz gibi olmayabilir.Benim hazırladığım kodda ki amaç her defasında XML-Sitemap ya da diğer Sitemap için yardımcı sitelere gerek kalmadan istediğim zaman kendi sitemde bir Sitemap oluşturmak.

Bu kod tam manası ile Seo etiketler ve html sayfaları üretmiyor.Sadece sizin Db nizde bulunan ve sadece kullanıcının form metodları ile erişebildiği linkleri otomatik olarak sıralıyor ve onlara link atıyor.Örneğin sitenizde bir liste kutusu var ve seçimlik işlemlerde aşağıda ki linki üretiyor:

SPONSOR REKLAMLARI

http://www.xxxx.com/sayfa.php?konu=konuadi&baslik=xxx

Bu tür linkleri Google dinamik olarak adlandırdığı için görmeyecektir.O halde şimdi aşağıda göreceğiniz kod tam size göre.

<? php
$xmlhead = "
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\">";
$dosya = "sitemap.xml";
unlink($dosya);
$dosya = fopen("sitemap.xml", "a");
fputs($dosya,"$xmlhead\n");
$sorgu = mysql_query("SELECT * FROM ");//Kendi sorgunuzu yazın
while($satir = mysql_fetch_assoc($sorgu))
{
$link = "http://www.siteniz.com/?talepx=".$satir['talepx']."&
talepy=".$satir['talep']."";
$url = "";
$loc = "".$link."";
$freq = "daily";
$prio = " 0.9";
$urlc = "";
fputs($dosya, "$url\n");
fputs($dosya, "$loc\n");
fputs($dosya, "$freq\n");
fputs($dosya, "$prio\n");
fputs($dosya, "$urlc\n");
}
$footer = "";
fputs($dosya, "$footer");
fclose($dosya);
header("Location:ping.php") ?>

Bu kod üzerinde ki alanları kendi sitenize uygun hale getirmelisiniz.Ben bunu NBZ için hazırladığımdan bana çok faydası oldu.DB ye yaptığım her 3-5 eklentiden sonra panele koyduÄŸum link ile otomatik olarak güncelleyebiliyorum.Fakat sadece güncelleme yetmiyor, aynı zamanda google tarafını bilgilendirmekte gerekiyor.Bu sebepten ötürü bulabildiÄŸim bir kodu da “ping.php” olarak kaydettim.Onda ki kodlar da ÅŸu ÅŸekilde :

<?php
$status = 0;
$google = 'www.google.com';
if( $fp=@fsockopen($google, 80) )
{
$req = 'GET /webmasters/sitemaps/ping?sitemap=' .
urlencode( $url_xml ) . " HTTP/1.1\r\n" .
"Host: $google\r\n" .
"User-Agent: Mozilla/5.0 (compatible; " .
PHP_OS . ") PHP/" . PHP_VERSION . "\r\n" .
"Connection: Close\r\n\r\n";
fwrite( $fp, $req );
while( !feof($fp) )
{
if( @preg_match('~^HTTP/\d\.\d (\d+)~i', fgets($fp, 128), $m) )
{
$status = intval( $m[1] );
break;
}
}
fclose( $fp );
}
return($status);
}
if( 200 == ($status=pingGoogleSitemaps('http://siteadiniz.com/sitemap.xml')) )
{
echo "Site Haritası oluşturuldu ve Google basariyla bilgilendirildi";
}
else
{
echo "Google bilgilendirilemedi";
} ?>

Umarım işinizi görür.

Kolay gelsin.

1 Yorum

Yorum Yaz ( Türkçe gramer ve imla kurallarına uymayan yorumlar yayınlanmaz. )