Buffer icon Проекты

22 ноября 2016-го

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30

Sitemap для Эгеи

Обновлено для последней беты

Знаю, что Илья Бирман, разработчик движка для блога Эгея, «против» нативной генерации sitemap файла, поэтому пришлось сделать небольшой PHP скрипт для себя. Добавил задание в Cron, чтобы раз в неделю генерил новый файл. Квест пройден.

<?
$domain = 'mopsicus.ru'; // домен
$db_user = 'login'; // логин к БД
$db_password = 'password'; // пароль к БД
$db_database = 'blog'; // название БД
$db_host = 'localhost'; // адрес БД

$db = new mysqli($db_host, $db_user, $db_password, $db_database);

$xml = '<?xml version="1.0" encoding="UTF-8"?>';
$xml .= "\n";
$xml .= '<urlset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">';
$result = $db->query("SELECT MAX(`LastModified`) AS `LastModified` FROM `notes` WHERE 1");
while ($row = $result->fetch_assoc()) {
$xml .= "
<url>
	<loc>http://$domain</loc>
	<priority>1.0</priority>
	<lastmod>".date('Y-m-d\TH:i:s\Z', $row['LastModified'])."</lastmod>
</url>";
}
$result = $db->query("SELECT OriginalAlias, LastModified FROM `notes` WHERE IsPublished = 1 AND isvisible = 1");
while ($row = $result->fetch_assoc()) {
	$page = $row['OriginalAlias'];
	$xml .= "
<url>
	<loc>http://$domain/all/$page</loc>
	<priority>0.8</priority>
	<lastmod>".date('Y-m-d\TH:i:s\Z', $row['LastModified'])."</lastmod>
</url>";
}	
$xml .= "
</urlset>";
$db->close();
$fp = fopen('sitemap.xml', 'w'); 
fwrite($fp, $xml);
fclose($fp);
echo "ok";
?>
← Ctrl →
· · ·   29 ноября 2016