所属系列:QUX主题二次开发实战系列 | 难度:中级
导语:很多用QUX主题做内容站的站长都会遇到两个高频痛点:一是手动写摘要耗时间,写得不规范还会影响搜索引擎抓取结果的点击率;二是手动打标签容易出现漏标、错标、标签不统一的问题,直接影响站内关联推荐和内链结构合理性。今天这篇教程就教大家给QUX主题集成国内可直接用的文心一言AI接口,实现发布文章时自动生成符合SEO要求的摘要和标准化标签,全程不用改主题核心文件,升级无影响。
前置准备
- QUX主题版本≥V9.0(老版本钩子兼容问题不建议改造)
- PHP版本≥7.4(需支持cURL扩展,大部分主机默认开启)
- 已启用QUX子主题(避免主主题升级覆盖改造代码)
- 百度智能云文心一言API密钥(新用户有百万字符免费额度,个人站够用1年以上)
- 基础的代码编辑能力,会修改子主题functions.php文件
原理简述
整个功能逻辑完全依托WordPress原生钩子实现,不需要修改QUX主题核心代码:
- 监听
save_post钩子,当用户点击发布/更新文章时触发自定义函数 - 自动提取文章标题、正文内容,按指定格式组装prompt传给文心一言AI接口
- 解析AI返回的结构化内容,自动写入文章摘要(
post_excerpt字段)和文章标签库 - 新增
aiautogenerated自定义字段标记生成状态,避免重复请求浪费API额度
实操步骤
步骤1:配置API密钥常量
打开QUX子主题的functions.php文件,在顶部粘贴以下代码,替换成你自己的百度智能云API密钥:
// 百度文心一言API配置,替换为自己的密钥
define('ERNIEAPIKEY', '你的百度智能云API_KEY');
define('ERNIESECRETKEY', '你的百度智能云SECRET_KEY');
// 生成配置:摘要字数、标签数量
define('AIEXCERPTLENGTH', 150); // 摘要控制在150字左右
define('AITAGCOUNT', 5); // 每篇文章生成5个标签
步骤2:编写AI请求核心函数
继续在functions.php中添加请求AI接口的公共函数,自带超时处理、错误提示:
/
* 请求文心一言接口获取返回内容
* @param string $prompt 提示词
* @return string|false 接口返回内容,失败返回false
*/
function quxairequest($prompt) {
// 先获取access_token
$tokenurl = "https://aip.baidubce.com/oauth/2.0/token?granttype=clientcredentials&clientid=" . ERNIEAPIKEY . "&clientsecret=" . ERNIESECRET_KEY;
$tokenres = wpremotepost($tokenurl, array('timeout' => 10));
if(iswperror($token_res)) return false;
$tokendata = jsondecode(wpremoteretrievebody($tokenres), true);
if(!isset($tokendata['accesstoken'])) return false;
// 请求生成内容,用ERNIE-4.0-Tiny-8K接口,成本低响应快
$apiurl = "https://aip.baidubce.com/rpc/2.0/aicustom/v1/wenxinworkshop/chat/ernie-4.0-tiny-8k?accesstoken=" . $tokendata['access_token'];
$body = json_encode(array(
'messages' => array(array('role' => 'user', 'content' => $prompt)),
'temperature' => 0.3, // 降低随机性保证内容稳定
'response_format' => 'json' // 要求返回JSON格式方便解析
));
$res = wpremotepost($api_url, array(
'headers' => array('Content-Type' => 'application/json'),
'body' => $body,
'timeout' => 15
));
if(iswperror($res)) return false;
$resdata = jsondecode(wpremoteretrieve_body($res), true);
return isset($resdata['result']) ? $resdata['result'] : false;
}
步骤3:绑定发布钩子实现自动生成
最后添加触发逻辑,发布文章时自动调用AI生成内容,优先保留用户手动填写的摘要和标签:
/
* 文章发布时自动生成摘要和标签
*/
addaction('savepost', 'quxautogenerateexcerpttags', 10, 3);
function quxautogenerateexcerpttags($post_id, $post, $update) {
// 排除自动保存、修订版本、非文章类型、已有生成标记、用户已填摘要+标签的情况
if(
wpispostautosave($postid) || wpispostrevision($postid)
|| $post->posttype != 'post' || $post->poststatus != 'publish'
|| getpostmeta($postid, 'aiauto_generated', true) == 1
|| (!empty($post->postexcerpt) && !empty(wpgetposttags($post_id)))
) return;
// 提取文章内容,过滤HTML标签和多余空格
$posttitle = wpstripalltags($post->post_title);
$postcontent = wpstripalltags($post->post_content);
$postcontent = mbsubstr($post_content, 0, 2000); // 避免内容过长超过接口限制
// 组装prompt,要求返回固定JSON格式
$prompt = "你是专业的内容编辑,针对下面这篇文章生成" . AIEXCERPTLENGTH . "字左右的SEO友好摘要,以及" . AITAGCOUNT . "个精准的内容标签,标签之间用英文逗号分隔,返回格式严格为JSON:{"excerpt":"摘要内容","tags":"标签1,标签2,标签3"}。文章标题:{$posttitle},文章内容:{$postcontent}";
$airesult = quxai_request($prompt);
if(!$ai_result) return;
$resultdata = jsondecode($ai_result, true);
if(!isset($resultdata['excerpt']) || !isset($resultdata['tags'])) return;
// 写入摘要和标签,避免触发死循环移除钩子
removeaction('savepost', 'quxautogenerateexcerpttags', 10);
// 仅当用户未填摘要时写入
if(empty($post->post_excerpt)) {
wpupdatepost(array(
'ID' => $post_id,
'postexcerpt' => wpslash($result_data['excerpt'])
));
}
// 仅当用户未打标签时写入
if(empty(wpgetposttags($postid))) {
wpsetposttags($postid, $result_data['tags'], true);
}
// 添加生成标记
updatepostmeta($postid, 'aiauto_generated', 1);
// 重新绑定钩子
addaction('savepost', 'quxautogenerateexcerpttags', 10, 3);
}
常见问题 & 避坑
- API请求频繁失败?
先检查主机是否能访问百度智能云接口,部分海外主机可能有网络限制,建议用国内主机;其次把代码中的timeout参数调整到20秒,避免网络波动超时。
- 不想覆盖手动填写的内容?
代码中已经做了判断:只要用户手动填写了摘要或者标签,就不会覆盖对应内容,完全可以手动调整AI生成的结果。
- 旧文章想要批量生成?
可以临时加一段后台批量处理逻辑,或者用WP-CLI遍历所有未生成的文章触发函数,生成完成后删除批量代码即可,避免占用后台资源。
- 主主题升级会失效吗?
所有代码都写在子主题的functions.php中,只要不删除子主题,升级QUX主主题完全不受影响。
总结
本次改造全程只需要修改子主题文件,10分钟就能配置完成,按个人站日均更新10篇文章计算,一年能节省上百小时的内容整理时间,同时生成的摘要和标签更符合SEO规范,统一的标签体系也能提升站内关联推荐的准确率,后续还可以基于这套逻辑扩展AI生成封面图、AI生成相关推荐内容等功能。
标签:QUX主题二次开发,WordPress AI功能,PHP代码片段,自动生成文章摘要,站点效率优化,文心一言API集成
Qux官方演示站

