WordPress网站如何接入AI自动生成内容与API集成开发方法

在当今数字内容爆炸的时代,许多WordPress网站管理员正在寻求通过AI技术自动生成内容的方法。本文将详细介绍如何将AI文章生成器与WordPress网站进行API集成,实现内容自动生成与发布。

主流AI文章生成器API对比

在开始集成前,我们需要了解市面上主流AI文章生成器的API特性与接入方式。以下是几个热门AI平台的API特点:

AI平台 API特点 适用场景 价格区间
OpenAI (GPT-4) 文本生成能力强,支持长文本,响应速度快 高质量文章生成,复杂内容创作 $0.03-0.06/1K tokens
DeepSeek 中文理解优秀,支持长上下文,性价比高 中文内容创作,学术文章生成 ¥0.005-0.02/1K tokens
豆包 中文本土化程度高,理解语境能力强 中文营销文案,社交媒体内容 免费+付费套餐
文心一言 百度生态整合,中文知识库丰富 百度系平台内容,知识型文章 免费+付费API调用
Gemini 多模态支持,Google生态整合 多媒体内容生成,国际化内容 免费+付费版本

WordPress与AI API集成准备工作

在开始集成之前,你需要完成以下准备工作:

  1. 获取AI平台的API密钥
    • 注册相应AI平台的开发者账号
    • 在开发者控制台创建新应用
    • 生成并保存API密钥(注意:API密钥仅显示一次,请妥善保管)
  2. 确保WordPress环境满足要求
    • WordPress版本5.0以上
    • PHP版本7.4以上(推荐8.0+)
    • 启用cURL扩展(用于API请求)
  3. 安装必要插件
    • Code Snippets(用于添加自定义代码)
    • 或者使用Advanced Custom Fields(用于创建自定义字段)

通过WordPress插件接入AI API

对于不熟悉代码的用户,使用现成插件是最简单的集成方式。以下是几款支持AI API集成的WordPress插件及其配置方法:

1. AI Engine插件接入OpenAI API

AI Engine是一款功能强大的WordPress插件,支持接入多种AI服务提供商的API。

安装配置步骤:

  1. 在WordPress后台导航栏选择"插件" > "安装插件"
  2. 搜索"AI Engine"并安装激活
  3. 进入"设置" > "AI Engine"
  4. 在"API Keys"选项卡中输入你的OpenAI API密钥
  5. 选择默认模型(推荐GPT-3.5-turbo或GPT-4)
  6. 配置内容生成参数(温度、最大长度等)

使用AI Engine生成内容的代码示例:

// 添加到functions.php文件
function generate_ai_content($prompt) {
    $api_key = '你的OpenAI API密钥';
    $url = 'https://api.openai.com/v1/completions';
    
    $headers = array(
        'Content-Type: application/json',
        'Authorization: Bearer ' . $api_key
    );
    
    $body = array(
        'model' => 'text-davinci-003',
        'prompt' => $prompt,
        'max_tokens' => 1000,
        'temperature' => 0.7
    );
    
    $args = array(
        'headers' => $headers,
        'body' => json_encode($body),
        'method' => 'POST',
        'timeout' => 30
    );
    
    $response = wp_remote_post($url, $args);
    
    if (is_wp_error($response)) {
        return '错误: ' . $response->get_error_message();
    }
    
    $body = wp_remote_retrieve_body($response);
    $data = json_decode($body, true);
    
    return $data['choices'][0]['text'];
}

2. 使用WP AI Content Generator接入DeepSeek API

WP AI Content Generator是一款支持多种AI服务的内容生成插件,特别适合中文内容创作。

配置步骤:

  1. 安装并激活WP AI Content Generator插件
  2. 进入"设置" > "AI Content Generator"
  3. 选择"DeepSeek"作为AI服务提供商
  4. 输入DeepSeek API密钥
  5. 配置默认参数(模型选择、温度等)
  6. 保存设置

自定义DeepSeek API集成代码:

// 添加到functions.php文件
function generate_deepseek_content($prompt) {
    $api_key = '你的DeepSeek API密钥';
    $url = 'https://api.deepseek.com/v1/chat/completions';
    
    $headers = array(
        'Content-Type: application/json',
        'Authorization: Bearer ' . $api_key
    );
    
    $body = array(
        'model' => 'deepseek-chat',
        'messages' => array(
            array(
                'role' => 'user',
                'content' => $prompt
            )
        ),
        'temperature' => 0.7,
        'max_tokens' => 2000
    );
    
    $args = array(
        'headers' => $headers,
        'body' => json_encode($body),
        'method' => 'POST',
        'timeout' => 30
    );
    
    $response = wp_remote_post($url, $args);
    
    if (is_wp_error($response)) {
        return '错误: ' . $response->get_error_message();
    }
    
    $body = wp_remote_retrieve_body($response);
    $data = json_decode($body, true);
    
    return $data['choices'][0]['message']['content'];
}

自定义开发:直接通过WordPress API集成AI服务

对于有开发经验的用户,直接通过WordPress API集成AI服务可以提供更大的灵活性和定制化空间。以下是具体实现方法:

1. 创建自定义AI内容生成函数

首先,我们需要在主题的functions.php文件中创建一个函数,用于调用AI API并生成内容:

// 自定义AI内容生成函数
function custom_ai_content_generator($prompt, $provider = 'openai', $model = '', $api_key = '') {
    // 根据不同的AI提供商设置API端点
    $api_endpoints = array(
        'openai' => 'https://api.openai.com/v1/chat/completions',
        'deepseek' => 'https://api.deepseek.com/v1/chat/completions',
        'gemini' => 'https://generativelanguage.googleapis.com/v1beta/models/gemini-pro:generateContent',
        'wenxin' => 'https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/completions',
        'tongyi' => 'https://dashscope.aliyuncs.com/api/v1/services/aigc/text-generation/generation'
    );
    
    // 设置默认模型
    $default_models = array(
        'openai' => 'gpt-3.5-turbo',
        'deepseek' => 'deepseek-chat',
        'gemini' => 'gemini-pro',
        'wenxin' => 'eb-instant',
        'tongyi' => 'qwen-turbo'
    );
    
    // 检查参数
    if (empty($model)) {
        $model = $default_models[$provider];
    }
    
    // 准备请求头
    $headers = array(
        'Content-Type: application/json'
    );
    
    // 根据不同的AI提供商准备认证信息
    switch ($provider) {
        case 'openai':
        case 'deepseek':
            $headers[] = 'Authorization: Bearer ' . $api_key;
            break;
        case 'gemini':
            $api_endpoint = $api_endpoints[$provider] . '?key=' . $api_key;
            break;
        case 'wenxin':
            // 需要先获取access token
            $token_url = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=' . $api_key;
            $token_response = wp_remote_get($token_url);
            $token_data = json_decode(wp_remote_retrieve_body($token_response), true);
            $access_token = $token_data['access_token'];
            $api_endpoints[$provider] .= '?access_token=' . $access_token;
            break;
        case 'tongyi':
            $headers[] = 'Authorization: Bearer ' . $api_key;
            break;
    }
    
    // 准备请求体
    switch ($provider) {
        case 'openai':
        case 'deepseek':
            $request_body = array(
                'model' => $model,
                'messages' => array(
                    array(
                        'role' => 'user',
                        'content' => $prompt
                    )
                ),
                'temperature' => 0.7,
                'max_tokens' => 2000
            );
            break;
        case 'gemini':
            $request_body = array(
                'contents' => array(
                    array(
                        'parts' => array(
                            array('text' => $prompt)
                        )
                    )
                ),
                'generationConfig' => array(
                    'temperature' => 0.7,
                    'topK' => 40,
                    'topP' => 0.95,
                    'maxOutputTokens' => 2000
                )
            );
            break;
        case 'wenxin':
            $request_body = array(
                'messages' => array(
                    array(
                        'role' => 'user',
                        'content' => $prompt
                    )
                )
            );
            break;
        case 'tongyi':
            $request_body = array(
                'model' => $model,
                'input' => array(
                    'messages' => array(
                        array(
                            'role' => 'user',
                            'content' => $prompt
                        )
                    )
                ),
                'parameters' => array(
                    'temperature' => 0.7,
                    'max_tokens' => 2000
                )
            );
            break;
    }
    
    // 发送请求
    $args = array(
        'headers' => $headers,
        'body' => json_encode($request_body),
        'method' => 'POST',
        'timeout' => 30
    );
    
    $api_endpoint = isset($api_endpoint) ? $api_endpoint : $api_endpoints[$provider];
    $response = wp_remote_post($api_endpoint, $args);
    
    // 处理响应
    if (is_wp_error($response)) {
        return '错误: ' . $response->get_error_message();
    }
    
    $body = wp_remote_retrieve_body($response);
    $data = json_decode($body, true);
    
    // 根据不同的AI提供商提取生成的内容
    switch ($provider) {
        case 'openai':
        case 'deepseek':
            return $data['choices'][0]['message']['content'];
        case 'gemini':
            return $data['candidates'][0]['content']['parts'][0]['text'];
        case 'wenxin':
            return $data['result'];
        case 'tongyi':
            return $data['output']['text'];
        default:
            return '不支持的AI提供商';
    }
}

2. 创建WordPress后台管理界面

为了方便管理AI内容生成功能,我们需要在WordPress后台创建一个设置页面:

// 添加AI内容生成设置菜单
function ai_content_generator_menu() {
    add_menu_page(
        'AI内容生成设置',
        'AI内容生成',
        'manage_options',
        'ai-content-generator',
        'ai_content_generator_settings_page',
        'dashicons-edit-page'
    );
}
add_action('admin_menu', 'ai_content_generator_menu');

// 注册设置
function ai_content_generator_settings() {
    register_setting('ai_content_generator_settings', 'ai_provider');
    register_setting('ai_content_generator_settings', 'ai_api_key');
    register_setting('ai_content_generator_settings', 'ai_model');
    register_setting('ai_content_generator_settings', 'ai_temperature');
    register_setting('ai_content_generator_settings', 'ai_max_tokens');
}
add_action('admin_init', 'ai_content_generator_settings');

// 设置页面内容
function ai_content_generator_settings_page() {
    ?>
    

AI内容生成设置

AI服务提供商 <option value="openai" >OpenAI <option value="deepseek" >DeepSeek <option value="gemini" >Gemini <option value="wenxin" >文心一言 <option value="tongyi" >通义千问
API密钥 <input type="password" name="ai_api_key" value="" class="regular-text" />

请输入你的AI服务提供商API密钥

模型 <input type="text" name="ai_model" value="" class="regular-text" />

例如:gpt-3.5-turbo, deepseek-chat, gemini-pro等

温度 (0-1) <input type="number" name="ai_temperature" value="" min="0" max="1" step="0.1" class="small-text" />

控制生成内容的随机性,值越高越随机

最大令牌数 <input type="number" name="ai_max_tokens" value="" min="100" max="8000" step="100" class="small-text" />

控制生成内容的最大长度

<?php }

3. 添加AI内容生成功能到文章编辑器

为了在文章编辑页面直接使用AI内容生成功能,我们需要添加一个自定义元框:

WordPress网站如何接入AI自动生成内容与API集成开发方法

// 添加AI内容生成元框
function add_ai_content_generator_meta_box() {
    add_meta_box(
        'ai_content_generator',
        'AI内容生成器',
        'ai_content_generator_meta_box_callback',
        'post',
        'side',
        'high'
    );
}
add_action('add_meta_boxes', 'add_ai_content_generator_meta_box');

// 元框内容
function ai_content_generator_meta_box_callback($post) {
    wp_nonce_field('ai_content_generator_nonce', 'ai_content_generator_nonce_field');
    ?>
    

生成中...

jQuery(document).ready(function($) { $('generate-ai-content').click(function() { var prompt = $('ai-prompt').val(); if (!prompt) { alert('请输入内容提示'); return; } $('ai-loading').show(); $('generate-ai-content').prop('disabled', true); $.ajax({ url: ajaxurl, type: 'POST', data: { action: 'generate_ai_content', prompt: prompt, nonce: $('ai_content_generator_nonce_field').val() }, success: function(response) { if (response.success) { $('ai-generated-content').val(response.data); } else { alert('生成失败: ' + response.data); } }, error: function() { alert('请求失败,请重试'); }, complete: function() { $('ai-loading').hide(); $('generate-ai-content').prop('disabled', false); } }); }); $('insert-ai-content').click(function() { var content = $('ai-generated-content').val(); if (!content) { alert('没有可插入的内容'); return; } if (window.tinymce && window.tinymce.activeEditor) { window.tinymce.activeEditor.execCommand('mceInsertContent', false, content); } else { $('content').val($('content').val() + content); } }); }); <?php } // 处理AJAX请求 function handle_generate_ai_content() { check_ajax_referer('ai_content_generator_nonce', 'nonce'); if (!current_user_can('edit_posts')) { wp_die('权限不足'); } $prompt = sanitize_textarea_field($_POST['prompt']); if (empty($prompt)) { wp_send_json_error('请输入内容提示'); } $provider = get_option('ai_provider', 'openai'); $api_key = get_option('ai_api_key'); $model = get_option('ai_model', 'gpt-3.5-turbo'); $temperature = floatval(get_option('ai_temperature', 0.7)); $max_tokens = intval(get_option('ai_max_tokens', 2000)); if (empty($api_key)) { wp_send_json_error('请先配置API密钥'); } $content = custom_ai_content_generator($prompt, $provider, $model, $api_key); if (strpos($content, '错误:') === 0) { wp_send_json_error($content); } else { wp_send_json_success($content); } } add_action('wp_ajax_generate_ai_content', 'handle_generate_ai_content');

AI内容自动发布与定时任务

除了手动生成内容,我们还可以设置WordPress自动生成和发布内容的功能。以下是实现方法:

1. 创建自动内容生成计划

// 添加自动内容生成计划
function setup_ai_content_generation_schedule() {
    if (!wp_next_scheduled('ai_content_generation_event')) {
        wp_schedule_event(time(), 'daily', 'ai_content_generation_event');
    }
}
add_action('wp', 'setup_ai_content_generation_schedule');

// 执行自动内容生成
function execute_ai_content_generation() {
    $provider = get_option('ai_provider', 'openai');
    $api_key = get_option('ai_api_key');
    $model = get_option('ai_model', 'gpt-3.5-turbo');
    
    if (empty($api_key)) {
        return; // 如果没有配置API密钥,则不执行
    }
    
    // 获取内容生成主题列表
    $topics = get_option('ai_content_topics', array());
    
    if (empty($topics)) {
        return; // 如果没有配置主题,则不执行
    }
    
    // 随机选择一个主题
    $topic = $topics[array_rand($topics)];
    
    // 构建提示词
    $prompt = "请写一篇关于" . $topic . "的文章,要求内容详实、结构清晰,包含引言、正文和结论。";
    
    // 生成内容
    $content = custom_ai_content_generator($prompt, $provider, $model, $api_key);
    
    if (strpos($content, '错误:') !== 0) {
        // 创建文章
        $post_data = array(
            'post_title' => wp_strip_all_tags(explode("n", $content)[0]),
            'post_content' => $content,
            'post_status' => 'publish',
            'post_author' => 1,
            'post_category' => array(1) // 默认分类
        );
        
        wp_insert_post($post_data);
    }
}
add_action('ai_content_generation_event', 'execute_ai_content_generation');

// 添加主题设置选项
function ai_content_topics_settings() {
    register_setting('ai_content_generator_settings', 'ai_content_topics');
}
add_action('admin_init', 'ai_content_topics_settings');

// 在设置页面添加主题配置
function ai_content_generator_settings_page_extension() {
    // 在原有的设置页面代码中添加以下部分
    ?>
    
内容主题列表

每行输入一个主题,系统将随机选择主题生成内容

自动生成频率 <option value="disabled" >禁用 <option value="daily" >每天 <option value="twicedaily" >每天两次 <option value="hourly" >每小时
<?php }

AI生成内容的SEO优化

AI生成的内容需要进行SEO优化,才能更好地被搜索引擎收录和排名。以下是一些优化方法:

1. 自动生成SEO友好的标题和描述

// 自动生成SEO标题和描述
function generate_ai_seo_data($content) {
    $provider = get_option('ai_provider', 'openai');
    $api_key = get_option('ai_api_key');
    $model = get_option('ai_model', 'gpt-3.5-turbo');
    
    if (empty($api_key)) {
        return array(
            'title' => '',
            'description' => ''
        );
    }
    
    // 生成SEO标题
    $title_prompt = "为以下内容生成一个SEO友好的标题,长度不超过60个字符:nn" . substr($content, 0, 1000);
    $seo_title = custom_ai_content_generator($title_prompt, $provider, $model, $api_key);
    $seo_title = wp_strip_all_tags($seo_title);
    $seo_title = substr($seo_title, 0, 60);
    
    // 生成SEO描述
    $desc_prompt = "为以下内容生成一个SEO友好的描述,长度不超过160个字符:nn" . substr($content, 0, 1000);
    $seo_description = custom_ai_content_generator($desc_prompt, $provider, $model, $api_key);
    $seo_description = wp_strip_all_tags($seo_description);
    $seo_description = substr($seo_description, 0, 160);
    
    return array(
        'title' => $seo_title,
        'description' => $seo_description
    );
}

// 保存文章时自动生成SEO数据
function save_ai_generated_seo_data($post_id, $post, $update) {
    if (wp_is_post_revision($post_id) || wp_is_post_autosave($post_id)) {
        return;
    }
    
    if ($post->post_status != 'publish') {
        return;
    }
    
    // 检查是否是AI生成的文章
    $ai_generated = get_post_meta($post_id, '_ai_generated', true);
    if (!$ai_generated) {
        return;
    }
    
    $content = $post->post_content;
    $seo_data = generate_ai_seo_data($content);
    
    // 更新SEO标题和描述
    update_post_meta($post_id, '_yoast_wpseo_title', $seo_data['title']);
    update_post_meta($post_id, '_yoast_wpseo_metadesc', $seo_data['description']);
    
    // 如果使用其他SEO插件,可以添加相应的代码
}
add_action('save_post', 'save_ai_generated_seo_data', 10, 3);

2. 自动添加内部链接

// 自动添加内部链接
function add_ai_internal_links($content) {
    global $post;
    
    // 获取网站所有文章
    $all_posts = get_posts(array(
        'numberposts' => -1,
        'post_status' => 'publish',
        'post_type' => 'post'
    ));
    
    // 提取文章标题作为关键词
    $keywords = array();
    foreach ($all_posts as $p) {
        if ($p->ID != $post->ID) { // 排除当前文章
            $title = $p->post_title;
            if (strlen($title) > 3) { // 只考虑长度大于3的标题
                $keywords[$title] = get_permalink($p->ID);
            }
        }
    }
    
    // 按标题长度降序排序,优先匹配长标题
    uksort($keywords, function($a, $b) {
        return strlen($b) - strlen($a);
    });
    
    // 替换内容中的关键词为链接
    foreach ($keywords as $keyword => $url) {
        // 只替换第一次出现的关键词
        $content = preg_replace('/b(' . preg_quote($keyword, '/') . ')b/i', '$1', $content, 1);
    }
    
    return $content;
}

// 在保存文章时添加内部链接
function save_ai_content_with_internal_links($post_id, $post, $update) {
    if (wp_is_post_revision($post_id) || wp_is_post_autosave($post_id)) {
        return;
    }
    
    if ($post->post_status != 'publish') {
        return;
    }
    
    // 检查是否是AI生成的文章
    $ai_generated = get_post_meta($post_id, '_ai_generated', true);
    if (!$ai_generated) {
        return;
    }
    
    // 移除文章保存钩子,防止无限循环
    remove_action('save_post', 'save_ai_content_with_internal_links', 10, 3);
    
    // 添加内部链接
    $content = $post->post_content;
    $content_with_links = add_ai_internal_links($content);
    
    // 更新文章内容
    wp_update_post(array(
        'ID' => $post_id,
        'post_content' => $content_with_links
    ));
    
    // 重新添加文章保存钩子
    add_action('save_post', 'save_ai_content_with_internal_links', 10, 3);
}
add_action('save_post', 'save_ai_content_with_internal_links', 10, 3);

AI内容生成常见问题与解决方案

1. API请求超时或失败

当AI API请求超时或失败时,可以尝试以下解决方案:

  • 增加请求超时时间:在代码中将timeout参数从30增加到60或更长
  • 实现重试机制:当请求失败时,自动重试2-3次
  • 使用异步处理:将API请求放入WordPress cron任务中异步执行
// 带重试机制的API请求函数
function ai_api_request_with_retry($url, $args, $max_retries = 3) {
    $retry_count = 0;
    $response = null;
    
    while ($retry_count = 200 && $status_code < 300) {
                break; // 请求成功,退出循环
            }
        }
        
        $retry_count++;
        if ($retry_count < $max_retries) {
            sleep(2); // 等待2秒后重试
        }
    }
    
    return $response;
}

2. 生成内容质量不佳

如果AI生成的内容质量不佳,可以尝试以下方法改进:

  • 优化提示词:提供更详细、更具体的提示词,包括内容结构、风格要求等
  • 调整模型参数:降低temperature值使内容更确定性,增加max_tokens值使内容更完整
  • 使用更高级的模型:如从GPT-3.5升级到GPT-4
  • 实现内容后处理:对生成的内容进行格式化、分段、添加标题等处理
// 优化提示词的函数
function create_enhanced_prompt($topic, $style = 'informative', $length = 'medium', $structure = true) {
    $prompt = "请写一篇关于" . $topic . "的文章";
    
    // 添加风格要求
    switch ($style) {
        case 'informative':
            $prompt .= ",风格要客观、信息丰富";
            break;
        case 'casual':
            $prompt .= ",风格要轻松、口语化";
            break;
        case 'professional':
            $prompt .= ",风格要专业、正式";
            break;
        case 'persuasive':
            $prompt .= ",风格要有说服力";
            break;
    }
    
    // 添加长度要求
    switch ($length) {
        case 'short':
            $prompt .= ",长度约500字";
            break;
        case 'medium':
            $prompt .= ",长度约1000字";
            break;
        case 'long':
            $prompt .= ",长度约2000字";
            break;
    }
    
    // 添加结构要求
    if ($structure) {
        $prompt .= ",包含引言、正文和结论,正文部分至少分为3个小节";
    }
    
    $prompt .= "。";
    
    return $prompt;
}

3. API成本控制

AI API使用可能会产生较高成本,以下是一些控制成本的方法: