WordPress网站如何接入AI自动生成内容与API集成开发方法
- Linkreate AI插件 文章
- 2025-08-27 18:40:54
- 2阅读
在当今数字内容爆炸的时代,许多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集成准备工作
在开始集成之前,你需要完成以下准备工作:
- 获取AI平台的API密钥
- 注册相应AI平台的开发者账号
- 在开发者控制台创建新应用
- 生成并保存API密钥(注意:API密钥仅显示一次,请妥善保管)
- 确保WordPress环境满足要求
- WordPress版本5.0以上
- PHP版本7.4以上(推荐8.0+)
- 启用cURL扩展(用于API请求)
- 安装必要插件
- Code Snippets(用于添加自定义代码)
- 或者使用Advanced Custom Fields(用于创建自定义字段)
通过WordPress插件接入AI API
对于不熟悉代码的用户,使用现成插件是最简单的集成方式。以下是几款支持AI API集成的WordPress插件及其配置方法:
1. AI Engine插件接入OpenAI API
AI Engine是一款功能强大的WordPress插件,支持接入多种AI服务提供商的API。
安装配置步骤:
- 在WordPress后台导航栏选择"插件" > "安装插件"
- 搜索"AI Engine"并安装激活
- 进入"设置" > "AI Engine"
- 在"API Keys"选项卡中输入你的OpenAI API密钥
- 选择默认模型(推荐GPT-3.5-turbo或GPT-4)
- 配置内容生成参数(温度、最大长度等)
使用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服务的内容生成插件,特别适合中文内容创作。
配置步骤:
- 安装并激活WP AI Content Generator插件
- 进入"设置" > "AI Content Generator"
- 选择"DeepSeek"作为AI服务提供商
- 输入DeepSeek API密钥
- 配置默认参数(模型选择、温度等)
- 保存设置
自定义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内容生成功能,我们需要添加一个自定义元框:
// 添加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使用可能会产生较高成本,以下是一些控制成本的方法:
- 设置使用限制: