SmartyPress AI Engine Статья документации

Хуки WordPress в SmartyPress AI Engine: фильтры и действия

Проверенные рецепты и справочник фильтров и действий версии 1.0.31.

Хуки WordPress позволяют поменять поведение SmartyPress без правки самого плагина: поднять лимиты, отключить автоматическую вставку ключа, пометить черновики своей меткой. Здесь собраны фильтры и действия версии 1.0.31, которые чаще всего нужны на практике. Каждый рецепт мы проверили на тестовом сайте.

Куда писать код

Есть три варианта:

  • Отдельный файл в wp-content/mu-plugins/, например smartypress-tweaks.php. Такой файл WordPress подключает сам, а обновления темы и плагинов его не трогают. Это самый надёжный вариант.
  • functions.php дочерней темы. Работает, пока тема активна.
  • Плагин для сниппетов, например Code Snippets, — если не хочется работать с файлами.

Файл в mu-plugins начинается с <?php, дальше идут нужные строки из рецептов ниже.

Рецепты

Убрать сбои массовой генерации на моделях с рассуждениями

Модели с пометкой 🧠, например DeepSeek V4 Flash, сначала «думают», а потом отвечают, и на размышления уходят токены. Заголовок, подзаголовки, отрывок и SEO-поля плагин запрашивает с лимитом 1500 токенов, и иногда модель тратит его целиком. Тогда тема срывается или отрывок обрывается. Фильтр поднимает этот минимум:

add_filter( 'smartypress_ai_reasoning_min_output_tokens', function () {
	return 4000;
} );

В нашей проверке запрос SEO-полей с этим фильтром потратил на размышления 1827 токенов. С лимитом 1500 он бы не уложился. На обычные модели фильтр не влияет.

Не вставлять ключевое слово в текст автоматически

Если нейросеть не вернула SEO-данные, массовая генерация вставляет фокусное ключевое слово сама: в начало первого абзаца через двоеточие, в конец нескольких абзацев и в первый подзаголовок. Читается это плохо. Отключить:

add_filter( 'smartypress_ai_seo_content_deterministic_fallback_enabled', '__return_false' );

Больше 50 тем за один запуск

Массовая генерация принимает до 50 тем. Поднять лимит:

add_filter( 'smartypress_ai_bulk_max_topics', function () {
	return 100;
} );

Очередь двигает браузер, поэтому длинный список требует, чтобы вкладка была открыта всё время генерации.

Пометить черновики массовой генерации

Действие срабатывает сразу после того, как массовая генерация сохранила черновик. Например, можно поставить метку, чтобы потом найти все такие записи:

add_action( 'smartypress_ai_content_after_post_persisted', function ( $post_id ) {
	wp_set_post_tags( $post_id, 'черновик-нейросети', true );
} );

Здесь же можно назначить автора, поставить запись в отложенную публикацию или отправить уведомление редактору.

Ограничить температуру «Волшебной палочки»

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

add_filter( 'smartypress_ai_wand_params', function ( $params, $action ) {
	if ( 'correctText' === $action ) {
		$params['temperature'] = 0.2;
	}
	return $params;
}, 10, 2 );

Справочник фильтров

Фильтр Что меняет Аргументы
smartypress_ai_reasoning_min_output_tokens Минимальный лимит ответа для моделей с рассуждениями, по умолчанию 1500. $floor, $provider, $model, $params
smartypress_ai_seo_content_deterministic_fallback_enabled Вставлять ли ключ в текст, если SEO-данные не пришли. По умолчанию — да. $enabled, $content, $primary_keyword, $context
smartypress_ai_bulk_max_topics Сколько тем принимает массовая генерация, по умолчанию 50. $max
smartypress_ai_bulk_seo_optimization_enabled Делать ли SEO-доработку черновика в массовой генерации. $enabled, $settings
smartypress_ai_content_prepared_post_data Данные черновика массовой генерации перед сохранением. $post_data, $item, $settings
smartypress_ai_content_item_context Контекст строки массовой генерации, который уходит нейросети: заметки, атрибуты, артикул. $context, $post_type, $item, $settings
smartypress_ai_content_output_format Формат сохранённого текста: gutenberg (блоки, по умолчанию), html или legacy_markdown. $format, $post_data
smartypress_ai_seo_metadata_before_write SEO-поля перед записью в Rank Math, Yoast или AIOSEO: seo_title, meta_description, focus_keywords, slug. $metadata, $post_id
smartypress_ai_seo_metadata_adapter_enabled Писать ли SEO-поля в конкретный плагин: rank_math, yoast, aioseo, wordpress (ярлык). $enabled, $name, $post_id, $metadata
smartypress_ai_prompt_{действие} Промпт действия «Волшебной палочки» перед отправкой. Действия: enhanceText, correctText, longerText, shorterText, translateText, generateContent. $prompt, $arguments
smartypress_ai_wand_params Параметры запроса палочки: system_prompt, temperature, max_tokens, model. $params, $action

Справочник действий

Действие Когда срабатывает Аргументы
smartypress_ai_content_after_post_persisted Массовая генерация сохранила черновик. $post_id, $post_data, $item, $settings
smartypress_ai_module_toggled Модуль включили или выключили на экране «Компоненты». $module_id, $enabled
Хуки массовой генерации. smartypress_ai_content_after_post_persisted, smartypress_ai_content_prepared_post_data и smartypress_ai_content_item_context срабатывают только в массовой генерации. Черновики из мастера «Одна запись» сохраняются другим путём.

Что дальше