以下是一个基于DeepSeek API的WordPress插件开发方案,整合了多篇参考文档的核心实现逻辑,支持在文章编辑界面调用AI生成内容,并具备API密钥管理功能:
一、插件基础框架
1. 插件文件结构
deepseek-integration/
├── deepseek-integration.php # 主文件
├── includes/
│ ├── api-handler.php # API请求处理器
│ └── admin-settings.php # 后台设置页面
└── assets/
└── js/
└── editor.js # 文章编辑页脚本
2. 插件头信息(主文件)
<?php
/*
Plugin Name: DeepSeek AI Assistant
Plugin URI: https://yourdomain.com/deepseek-plugin
Description: 集成DeepSeek AI内容生成功能,支持在文章编辑界面调用API生成文本。
Version: 1.0.0
Author: Your Name
Author URI: https://yourdomain.com
License: GPLv2
*/
二、核心功能实现
1. API密钥管理
// 注册设置选项
add_action('admin_init', function() {
register_setting('deepseek_settings', 'deepseek_api_key');
register_setting('deepseek_settings', 'deepseek_model');
});
// 创建设置菜单
add_action('admin_menu', function() {
add_options_page(
'DeepSeek Settings',
'DeepSeek AI',
'manage_options',
'deepseek-settings',
'deepseek_settings_page'
);
});
function deepseek_settings_page() {
?>
<div class="wrap">
<h1>DeepSeek API设置</h1>
<form method="post" action="options.php">
<?php
settings_fields('deepseek_settings');
do_settings_sections('deepseek_settings');
?>
<table class="form-table">
<tr>
<th>API密钥</th>
<td>
<input type="password" name="deepseek_api_key"
value="<?php echo esc_attr(get_option('deepseek_api_key')); ?>"
class="regular-text">
</td>
</tr>
<tr>
<th>模型选择</th>
<td>
<select name="deepseek_model">
<option value="deepseek-chat" <?php selected(get_option('deepseek_model'), 'deepseek-chat'); ?>>DeepSeek-V3</option>
<option value="deepseek-reasoner" <?php selected(get_option('deepseek_model'), 'deepseek-reasoner'); ?>>DeepSeek-R1</option>
</select>
</td>
</tr>
</table>
<?php submit_button(); ?>
</form>
</div>
<?php
}
2. 文章编辑界面集成
// 添加元框
add_action('add_meta_boxes', function() {
add_meta_box(
'deepseek_ai_box',
'DeepSeek AI助手',
'deepseek_ai_metabox',
'post',
'advanced',
'high'
);
});
function deepseek_ai_metabox($post) {
wp_nonce_field('deepseek_generate', 'deepseek_nonce');
?>
<div class="deepseek-interface">
<textarea id="deepseek_prompt" rows="3" style="width:100%"></textarea>
<button id="generate-content" class="button button-primary">生成内容</button>
<div id="ai-response" style="margin-top:15px; border:1px solid #ddd; padding:10px;"></div>
</div>
<script src="<?php echo plugins_url('assets/js/editor.js', __FILE__); ?>"></script>
<?php
}
3. API请求处理器
// API请求函数
function deepseek_generate_text($prompt) {
$api_key = get_option('deepseek_api_key');
$model = get_option('deepseek_model') ?: 'deepseek-chat';
$response = wp_remote_post('https://api.deepseek.com/chat/completions', [
'headers' => [
'Authorization' => 'Bearer ' . $api_key,
'Content-Type' => 'application/json'
],
'body' => json_encode([
'model' => $model,
'messages' => [
['role' => 'system', 'content' => '你是一个专业的写作助手'],
['role' => 'user', 'content' => $prompt]
],
'temperature' => 0.7,
'max_tokens' => 1000
]),
'timeout' => 30
]);
if (is_wp_error($response)) {
return ['error' => $response->get_error_message()];
}
$body = json_decode(wp_remote_retrieve_body($response), true);
return $body['choices'][0]['message']['content'] ?? '生成失败';
}
// AJAX处理
add_action('wp_ajax_deepseek_generate', function() {
check_ajax_referer('deepseek_generate', 'nonce');
if (!current_user_can('edit_posts')) {
wp_send_json_error('权限不足');
}
$prompt = sanitize_text_field($_POST['prompt']);
$result = deepseek_generate_text($prompt);
wp_send_json_success([
'content' => wp_kses_post($result)
]);
});
三、前端交互脚本(editor.js)
jQuery(document).ready(function($) {
$('#generate-content').click(function(e) {
e.preventDefault();
let prompt = $('#deepseek_prompt').val();
$.ajax({
url: ajaxurl,
type: 'POST',
data: {
action: 'deepseek_generate',
nonce: $('#deepseek_nonce').val(),
prompt: prompt
},
beforeSend: function() {
$('#ai-response').html('<div class="spinner is-active"></div>');
},
success: function(response) {
if (response.success) {
$('#ai-response').html(response.data.content);
} else {
$('#ai-response').html('生成失败:' + response.data);
}
}
});
});
});
四、安全增强措施
- 权限验证:通过
current_user_can('edit_posts')
限制功能使用权限
- Nonce验证:使用WordPress的非对称加密机制防止CSRF攻击
- 输入过滤:
sanitize_text_field($_POST['prompt']);
wp_kses_post($result); // 输出时过滤危险HTML
- 错误处理:捕获API连接超时、密钥失效等异常状态
五、插件安装说明
- 将插件文件夹上传至
wp-content/plugins/
- 在后台「插件」页面激活插件
- 前往「设置」→「DeepSeek AI」填写API密钥
- 编辑文章时可在右侧「DeepSeek AI助手」面板使用生成功能
实现参考:DeepSeek官方API文档、WordPress插件开发规范、Erphp插件的自动发布逻辑。建议配合HTTPS使用,确保API密钥传输安全。如需增加自动发布功能,可参考中的定时任务实现方案。