Запись sitemap.xml в файл для Opencart 2.x и 3.x

Данное решение позволяет исключить постоянное обращение поисковых роботов к встроенному в Opencart генератору sitemap, который пересоздаёт карту сайта каждый раз при каждом новом обращении к скрипту (генерирует карту сайта «на лету»), что тем самым очень сильно нагружает web-сервер, на котором стоит сайт, а также позволит генерировать вам две разные карты сайта для Google и Yandex соответственно.

Как добавить файл sitemap Opencart 2 и Opencart 3? Подключись через FTP-клиент к корневой директории твоего сайта и создай в ней файл с расширением *.php и названием sitemapgen, после этого выставь права 0755 на этот файл и открой его в любом удобном для тебятекстовом редакторе (для Windows я рекомендую использовать Notepad++, а для OS X — TextWrangler или Coda).

Для записи Google Sitemap и Yandex Sitemap в файл под Opencart 2.x

<?php
 // Для Opencart 2.x
//Подгружаем конфиг
require_once('config.php');

//Назначаем переменные
//Внимание: HTTPS_SERVER - если вы используете https:// и HTTP_SERVER если https://
$siteMapSource = HTTP_SERVER . 'index.php?route=feed/google_sitemap';
$xml = file_get_contents($siteMapSource);
$siteMapContent = simplexml_load_string($xml);

$siteMapSource2 = HTTP_SERVER . 'index.php?route=feed/yandex_sitemap';
$xml2 = file_get_contents($siteMapSource2);
$siteMapContent2 = simplexml_load_string($xml2);

//Записываем данные из БД в статические файлы *.xml
if (!file_put_contents('1_g_sitemap.xml', $siteMapContent->asXML())) {
    error_log(date('Y-m-d H:i:s - ', time()) . 'Unable to save Google content into the file' ."\n", 3, DIR_LOGS . 'sitemap.txt');
    die('Google Sitemap data export process has been failed!');   
} elseif (!file_put_contents('1_ya_sitemap.xml', $siteMapContent2->asXML())) {	
	error_log(date('Y-m-d H:i:s - ', time()) . 'Unable to save Yandex content into the file' ."\n", 3, DIR_LOGS . 'sitemap.txt');
	die('Yandex Sitemap data export process has been failed!');	
} else { echo 'G,YA sitemaps update has been successfully completed!'; } 

?>

Для записи Google Sitemap и Yandex Sitemap в файл под Opencart 3.x

<?php
 // Для Opencart 3.x
//Подгружаем конфиг
require_once('config.php');

//Назначаем переменные
//Внимание: HTTPS_SERVER - если вы используете https:// и HTTP_SERVER если https://
$siteMapSource = HTTP_SERVER . 'index.php?route=extension/feed/google_sitemap';
$xml = file_get_contents($siteMapSource);
$siteMapContent = simplexml_load_string($xml);

$siteMapSource2 = HTTP_SERVER . 'index.php?route=extension/feed/yandex_sitemap';
$xml2 = file_get_contents($siteMapSource2);
$siteMapContent2 = simplexml_load_string($xml2);

//Записываем данные из БД в статические файлы *.xml
if (!file_put_contents('1_g_sitemap.xml', $siteMapContent->asXML())) {
    error_log(date('Y-m-d H:i:s - ', time()) . 'Unable to save Google content into the file' ."\n", 3, DIR_LOGS . 'sitemap.txt');
    die('Google Sitemap data export process has been failed!');   
} elseif (!file_put_contents('1_ya_sitemap.xml', $siteMapContent2->asXML())) {	
	error_log(date('Y-m-d H:i:s - ', time()) . 'Unable to save Yandex content into the file' ."\n", 3, DIR_LOGS . 'sitemap.txt');
	die('Yandex Sitemap data export process has been failed!');	
} else { echo 'G,YA sitemaps update has been successfully completed!'; } 

?>

Если у тебя установлен только стоковый модуль генерации карты сайта для Opencart — Google Sitemap, то тебе необходимо скопировать и вставить в созданный файл следующий кусок кода:

Для записи Google Sitemap в файл под Opencart 2.x

<?php
// Для Opencart 2.x
//Подгружаем конфиг
require_once('config.php');

//Назначаем переменные
//Внимание: HTTPS_SERVER - если вы используете https:// и HTTP_SERVER если https://
$siteMapSource = HTTPS_SERVER . 'index.php?route=feed/google_sitemap';
$xml = file_get_contents($siteMapSource);
$siteMapContent = simplexml_load_string($xml);

//Записываем данные из БД в статический файл *.xml
if (!file_put_contents('sitemap.xml', $siteMapContent->asXML())) {
    error_log(date('Y-m-d H:i:s - ', time()) . 'Unable to save Google content into the file' ."\n", 3, DIR_LOGS . 'sitemap.txt');
    die('Google Sitemap data export process has been failed!');   
} else { echo 'Google Sitemap update has been successfully completed!'; } 

?>

Для записи Google Sitemap в файл под Opencart 3.x

<?php
// Для Opencart 3.x
//Подгружаем конфиг
require_once('config.php');

//Назначаем переменные
//Внимание: HTTPS_SERVER - если вы используете https:// и HTTP_SERVER если https://
$siteMapSource = HTTPS_SERVER . 'index.php?route=extension/feed/google_sitemap';
$xml = file_get_contents($siteMapSource);
$siteMapContent = simplexml_load_string($xml);

//Записываем данные из БД в статический файл *.xml
if (!file_put_contents('sitemap.xml', $siteMapContent->asXML())) {
    error_log(date('Y-m-d H:i:s - ', time()) . 'Unable to save Google content into the file' ."\n", 3, DIR_LOGS . 'sitemap.txt');
    die('Google Sitemap data export process has been failed!');   
} else { echo 'Google Sitemap update has been successfully completed!'; } 

?>

Проверка работоспособности скрипта
После этого сохраняй изменения в файле и закрывай текстовый редактор. Теперь тебе нужно проверить получившийся скрипт на работоспособность.

Для этого тебе необходимо напрямую обратиться к данному файлу через браузер, если всё прошло без ошибок, то ты увидишь сообщение об успешной генерации статических файлов sitemap в своём браузере:

Для того, чтобы карта сайта обновлялась автоматически, тебе необходимо добавить задание в планировщик CRON на хостинге.

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии
× iOs app

To install this Web App in your iPhone/iPad press iOs sourse and then Add to Home Screen.