Хуки 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 срабатывают только в массовой генерации. Черновики из мастера «Одна запись» сохраняются другим путём.Что дальше
- Массовая генерация записей — где пригодятся первые три рецепта.
- Переменные промптов — как поменять промпты без кода.
- Решение проблем — частые ошибки и что с ними делать.