Избранное Все заметки GitHub icon Мой Github Обо мне

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";
?>
Поделиться
Отправить
Отправить
2 комментария
Максим 4 марта 2017, 17:16, GMT+03:00

Привет!

Сегодня скинули ссылку на этот пост. Сам недавно делал.
http://maksfedorov.ru/blog/all/sitemap-xml-dlya-bloga-na-egee/

Сделал через парсинг страницы /blog/all/

Игорь Лопатин 6 марта 2017, 10:39, GMT+03:00

Да тут ничего особо сложного то и нет Ж)

Дмитрий 23 сентября 2017, 17:13, GMT+03:00

А если блог находится в папке «blog», то в домене указывать путь с этой директорией или без неё?

Игорь Лопатин 25 сентября 2017, 10:21, GMT+03:00

До директории. Страницы блога же доступны по полному пути.

Популярное