Пересчёт через CLI
Обновлено
Когда нужен пересчёт
Запускайте пересчёт после изменения весов, количества рекомендаций, области поиска или массовой смены тегов и категорий. Он также нужен, чтобы добавить рекомендации к архиву ранее опубликованных статей.
При публикации автоматически пересчитывается только сама публикуемая запись. Открытие страницы и сохранение общих настроек не обновляют подборки всего архива.
Подготовка
Включите «Автоматические рекомендации». Хотя бы у одного списка должен быть включён «Вывод по хуку»: CLI обрабатывает только такие списки. Общие переключатели «Статус плагина» и «Выводить по хуку» сами по себе пересчёт не запрещают.
Команды с абсолютным путём к cli.php вашей установки доступны на странице настроек в разделе «CLI-команды», кнопка «Скопировать».
Примеры ниже выполняются из корня установки Webasyst, где находится cli.php. Используйте PHP, подходящий для этой установки.
Пересчитать все опубликованные записи
php cli.php blog ewblogrelatedRecalcКоманда обходит опубликованные записи и сохраняет новые автоматические связи. Списки с ручными связями у конкретной записи пропускаются. В выводе есть количество обработанных записей, сохранённых рекомендаций и пропущенных ручных списков.
Пересчитать одну запись
php cli.php blog ewblogrelatedRecalc --post_id 123Замените 123 на ID опубликованной записи. Команда пересчитает её списки с включённым «Вывод по хуку». Неопубликованная или отсутствующая запись не обрабатывается.
Удалить все автоматические рекомендации
php cli.php blog ewblogrelatedRecalc --clearКоманда удаляет автоматические связи всех записей во всех списках, включая списки с выключенным выводом по хуку. Ручные связи остаются. Очистка выполняется и при выключенном автоподборе; если передать вместе --clear и --post_id, очистка всё равно будет общей.
Выключение «Автоматические рекомендации» само по себе не удаляет уже сохранённые связи. Чтобы убрать старый автоматический подбор, используйте очистку. Пока автоподбор включён, публикация или следующий пересчёт могут снова создать связи.
Запуск по расписанию
Встроенного расписания в плагине нет. Администратор сервера может запускать ту же команду пересчёта через cron, указав реальные абсолютные пути к PHP и cli.php. Выбор времени и частоты остаётся за администратором.
Расчёт выполняется по данным Блога и сохраняет связи в базе этой установки. Для CLI-пересчёта внешний сервис и API-ключ не требуются.