Карта сайта для Yandex и Google: автообновление sitemap

Не должна. Увы, но автоматически не генерируется сайтмап.
Частота обновления нужна, чтоб сайт сообщал поисковикам, что нужно пройтись по сайтмапу.

Можете такое решение использовать. В папке сайта создайте php-файл с содержимым:

<?php

define('AREA', 'A');

define('ACCOUNT_TYPE', 'admin');

require(dirname(FILE) . '/init.php');

fn_google_sitemap_get_content();

и затем в Cron поставьте задачу на выполнение этого php-скрипта.

4 лайка

Создал задачу:
php /var/www/u0557436/data/www/bb-engineering.ru/sitemap_update.php

Выдаёт ошибку при запуске:
u0557436$ php /var/www/u0557436/data/www/bb-engineering.ru/sitemap_update.php PHP Notice: Use of undefined constant FILE - assumed 'FILE' in /var/www/u0557436/data/www/bb-engineering.ru/sitemap_update.php on line 7 PHP Warning: require(./init.php): failed to open stream: No such file or directory in /var/www/u0557436/data/www/bb-engineering.ru/sitemap_update.php on line 7 PHP Warning: require(./init.php): failed to open stream: No such file or directory in /var/www/u0557436/data/www/bb-engineering.ru/sitemap_update.php on line 7 PHP Fatal error: require(): Failed opening required './init.php' (include_path='.:/usr/share/pear:/usr/share/php') in /var/www/u0557436/data/www/bb-engineering.ru/sitemap_update.php on line 7

1 лайк

Попробуйте вместо require(dirname(FILE) . '/init.php'); вставить полный путь к init.php в корне сайта.

Например, require('/var/html/site.ru/init.php');

1 лайк

Получилось, спасибо!

1 лайк

Попробовал запустить этот php файл, но он не сработал.
Думал, что я с путями напутал и обратился к хостерам, так они мне сказали, что в файле много ошибок, но какие не сказали, только лишь указали на лишнюю точку в строке require(dirname(FILE) . ‘/init.php’);

2019-07-17_17-41-47

С точкой и без, с разными вариантами указания пути к файлу положительного результата не дает.

Также, хочу поинтересоваться, что означает в строке define(‘ACCOUNT_TYPE’, ‘admin’); этот ‘admin’?

2019-07-17_17-53-02

Если не сложно, подскажите, что не так делаю?

Этот скрипт выкладывала техподдержка на форуме. Он почему-то не работает, если не указать полный путь к init.php.

То есть код должены выглядеть так:

<?php
define('AREA', 'A');
define('ACCOUNT_TYPE', 'admin');
require('/home/site.ru/init.php');
fn_google_sitemap_get_content();

Только таким образом смог завести его.

Пробовал и с полным путем, но также не срабатывает. :roll_eyes:

Сейчас проверил у себя, добавил товар, запустил скрипт и в сайтмап товар добавился.

Не подскажу, с чем связано у вас, но основная проблема может быть в пути – проверьте валидность кавычек и чтоб путь начинался с корня сервера, как в примере выше.

С этим все нормально. Я по дате смотрю, изменился файл или нет.

А, что означает ‘admin’ в строке define(‘ACCOUNT_TYPE’, ‘admin’); ?

И еще, имеет значение таб или пробел для этого скрипта?


Проблема решилась, Таб ( tab ) ИМЕЕТ ЗНАЧЕНИЕ!

А, что означает ‘admin’ в строке define(‘ACCOUNT_TYPE’, ‘admin’); ?

Аккаунт, из-под которого будет выполняться функция fn_google_sitemap_get_content();

И еще, имеет значение таб или пробел для этого скрипта?

Никак не влияет на выполнение кода

Ну не знаю. Как только изменил пробелы на tab, так сразу и заработало.

Не сталкивался, чтоб пробелы вместо табуляции как-то влияли на выполнение кода. Это тема является древним холиваром (типа "зачем два раза нажимать на пробел, если можно один раз нажать на tab).

Возможно, используемый редактор кода работает странным образом с пробелами.

Ошибка 500 пишет.

а с Ультимэйт по cron как сделать? надо чтоб для каждой витрины генерилась.

Попробуйте создать cron задчаи для каждой витрины с доп параметром (switch_company_id=123)

где 123 - ID страницы

Форум обрезал нижние подчеркивания. __FILE__ вместо FILE

3 лайка

Всем привет! Это не спам, сразу говорю ))
У меня вопрос к специалистам. Я занимаюсь сайтом ювелирной тематики . Параллельно существует 3 сайта на бесплатный хостах, что-то типа визитов со ссылками на основной сайт. На этих серверах в корневых папках сайтов лежат файлы созданный одной из служб для автоматического создания sitemap (https://www.xml-sitemaps.com/ ) Но, эти файлы, как и любые другие созданные другими авто.службами, не принимаются в гугл_серч_панели. В ней просто красным пишется “Не получено”. На основном сайте всё прекрасно получено. Подскажите пожалуйста, где зарыта собака?

Запустила крон. выдает ошибку:

uxxxx$ php /var/www/uxxxx/data/www/site.ru/sitemap_update.php
PHP Parse error:  syntax error, unexpected '[' in /var/www/uxxxx/data/www/site.ru/init.php on line 90

Открываю init на 90 строке:

В чем может быть проблема?

Поставьте 7 версию PHP на сервере, вы видимо на очень старой работаете.

7.4 стоит давно
Screenshot_30