ИНТЕГРАЦИЯ • WORDPRESS

WordPress + Claude AI

Добавь искусственный интеллект на свой сайт. Генерация контента, чат-бот, SEO-оптимизация.

Генерация постов

Статьи, описания, мета-теги

WooCommerce

Описания товаров из характеристик

AI-чат

Виджет поддержки на сайте

SEO

Оптимизация текстов и заголовков

Базовая PHP функция для WordPress

Добавьте в functions.php вашей темы или через плагин WPCode:

<?php
/**
 * Вызов Claude API через CryptoCat
 */
function cryptocat_ask_ai($prompt, $max_tokens = 1024) {
    $api_key = 'sk-ваш-ключ'; // Лучше хранить в wp-config.php
    
    $response = wp_remote_post('https://api.cryptocatslab.ru/v1/chat/completions', [
        'headers' => [
            'Authorization' => 'Bearer ' . $api_key,
            'Content-Type' => 'application/json',
        ],
        'body' => json_encode([
            'model' => 'claude-sonnet-4-20250514',
            'messages' => [
                ['role' => 'user', 'content' => $prompt]
            ],
            'max_tokens' => $max_tokens
        ]),
        'timeout' => 30
    ]);
    
    if (is_wp_error($response)) {
        return false;
    }
    
    $body = json_decode(wp_remote_retrieve_body($response), true);
    return $body['choices'][0]['message']['content'] ?? false;
}

💡 Совет: храните API ключ в wp-config.php как define('CRYPTOCAT_API_KEY', 'sk-...');

Кейс 1: Генерация контента для постов

Автоматическое создание черновиков статей по заголовку:

<?php
// Генерация статьи по заголовку
function generate_post_content($title) {
    $prompt = "Напиши статью для блога на тему: "$title".
Структура:
- Введение (2-3 предложения)
- 3-4 подзаголовка H2 с текстом
- Заключение

Стиль: информативный, для широкой аудитории. 
Объём: 500-700 слов. Формат: HTML.";

    return cryptocat_ask_ai($prompt, 2000);
}

// Использование в админке или шорткоде
add_shortcode('ai_generate', function($atts) {
    $title = $atts['title'] ?? 'Интересная тема';
    return generate_post_content($title);
});

// [ai_generate title="Как выбрать ноутбук в 2025"]

Кейс 2: Описания товаров WooCommerce

Генерация продающих описаний из характеристик товара:

<?php
// Генерация описания товара
function generate_product_description($product_id) {
    $product = wc_get_product($product_id);
    if (!$product) return false;
    
    $name = $product->get_name();
    $attrs = $product->get_attributes();
    $price = $product->get_price();
    
    // Собираем характеристики
    $specs = [];
    foreach ($attrs as $attr) {
        $specs[] = $attr->get_name() . ': ' . implode(', ', $attr->get_options());
    }
    $specs_text = implode("\n", $specs);
    
    $prompt = "Напиши продающее описание товара для интернет-магазина.

Товар: $name
Цена: $price руб.
Характеристики:
$specs_text

Требования:
- 2-3 абзаца
- Выгоды для покупателя
- Призыв к действию
- Без воды, конкретика";

    return cryptocat_ask_ai($prompt, 500);
}

// Кнопка в админке товара
add_action('woocommerce_product_options_general_product_data', function() {
    echo '<button type="button" class="button" id="ai-generate-desc">
        ✨ Сгенерировать описание
    </button>';
});

Кейс 3: AI-чат на сайте

Простой виджет поддержки с AI-ответами:

PHP обработчик (AJAX endpoint)

<?php
// functions.php
add_action('wp_ajax_ai_chat', 'handle_ai_chat');
add_action('wp_ajax_nopriv_ai_chat', 'handle_ai_chat');

function handle_ai_chat() {
    $message = sanitize_text_field($_POST['message'] ?? '');
    if (empty($message)) {
        wp_send_json_error('Пустое сообщение');
    }
    
    $system = "Ты консультант на сайте " . get_bloginfo('name') . ".
Отвечай кратко и по делу. Если не знаешь ответ — предложи связаться с менеджером.
Сайт занимается: [опишите ваш бизнес]";

    $response = wp_remote_post('https://api.cryptocatslab.ru/v1/chat/completions', [
        'headers' => [
            'Authorization' => 'Bearer ' . CRYPTOCAT_API_KEY,
            'Content-Type' => 'application/json',
        ],
        'body' => json_encode([
            'model' => 'claude-haiku-4-5', // Быстрая модель для чата
            'messages' => [
                ['role' => 'system', 'content' => $system],
                ['role' => 'user', 'content' => $message]
            ],
            'max_tokens' => 300
        ]),
        'timeout' => 15
    ]);
    
    $body = json_decode(wp_remote_retrieve_body($response), true);
    $answer = $body['choices'][0]['message']['content'] ?? 'Ошибка';
    
    wp_send_json_success(['reply' => $answer]);
}

JavaScript виджет

<!-- Добавить в footer.php или через плагин -->
<div id="ai-chat-widget" style="position:fixed;bottom:20px;right:20px;z-index:9999;">
  <div id="chat-box" style="display:none;width:300px;background:#1a1a2e;border-radius:12px;padding:16px;">
    <div id="chat-messages" style="height:250px;overflow-y:auto;margin-bottom:10px;"></div>
    <input type="text" id="chat-input" placeholder="Задайте вопрос..." 
           style="width:100%;padding:8px;border-radius:6px;border:1px solid #333;background:#0d0d1a;color:#fff;">
  </div>
  <button onclick="toggleChat()" style="width:50px;height:50px;border-radius:50%;background:linear-gradient(135deg,#2fc7f7,#00ffff);border:none;cursor:pointer;">
    💬
  </button>
</div>
<script>
function toggleChat() {
  const box = document.getElementById('chat-box');
  box.style.display = box.style.display === 'none' ? 'block' : 'none';
}
document.getElementById('chat-input').addEventListener('keypress', async (e) => {
  if (e.key !== 'Enter') return;
  const input = e.target;
  const msg = input.value.trim();
  if (!msg) return;
  
  const messages = document.getElementById('chat-messages');
  messages.innerHTML += '<div style="color:#888;margin:5px 0;">Вы: ' + msg + '</div>';
  input.value = '';
  
  const res = await fetch(ajaxurl, {
    method: 'POST',
    headers: {'Content-Type': 'application/x-www-form-urlencoded'},
    body: 'action=ai_chat&message=' + encodeURIComponent(msg)
  });
  const data = await res.json();
  messages.innerHTML += '<div style="color:#2fc7f7;margin:5px 0;">AI: ' + data.data.reply + '</div>';
  messages.scrollTop = messages.scrollHeight;
});
</script>

Кейс 4: SEO-оптимизация

Генерация мета-тегов и улучшение заголовков:

<?php
// Генерация SEO мета-тегов для поста
function generate_seo_meta($post_id) {
    $post = get_post($post_id);
    $content = wp_strip_all_tags($post->post_content);
    $content = mb_substr($content, 0, 1000); // Первые 1000 символов
    
    $prompt = "На основе текста статьи сгенерируй SEO мета-теги.

Текст: $content

Верни JSON:
{
  "title": "SEO заголовок до 60 символов",
  "description": "Мета-описание 150-160 символов",
  "keywords": "ключевое1, ключевое2, ключевое3"
}";

    $response = cryptocat_ask_ai($prompt, 300);
    return json_decode($response, true);
}

// Улучшение заголовка
function improve_title($title) {
    $prompt = "Улучши заголовок статьи для SEO и кликабельности.
Текущий: "$title"
Дай 3 варианта, каждый до 60 символов. Только заголовки, без пояснений.";
    
    return cryptocat_ask_ai($prompt, 200);
}

Какую модель выбрать?

Claude Haiku
Чат-бот, быстрые ответы — дёшево и быстро
для чата
Claude Sonnet
Генерация контента, описания товаров
рекомендуем
Claude Opus
Длинные статьи, сложный анализ
премиум

Почему CryptoCat для WordPress?

Работает из России
Без VPN и блокировок
Простой PHP
wp_remote_post — нативно для WP
Оплата в рублях
Карты РФ, СБП
Быстрый ответ
~1 сек для Haiku

20₽ на счёт при регистрации • Копируй код и используй