欢迎光临
我们一直在努力

[AI生成]QUX主题集成AI自动生成文章标签与摘要功能实战(附PHP改造源码)

广告位,电脑和手机可分别设置,可放任何广告代码

所属系列:QUX主题二次开发实战系列 | 难度:中级


导语:很多用QUX主题做内容站的站长都会遇到两个高频痛点:一是手动写摘要耗时间,写得不规范还会影响搜索引擎抓取结果的点击率;二是手动打标签容易出现漏标、错标、标签不统一的问题,直接影响站内关联推荐和内链结构合理性。今天这篇教程就教大家给QUX主题集成国内可直接用的文心一言AI接口,实现发布文章时自动生成符合SEO要求的摘要和标准化标签,全程不用改主题核心文件,升级无影响。

前置准备

  1. QUX主题版本≥V9.0(老版本钩子兼容问题不建议改造)
  2. PHP版本≥7.4(需支持cURL扩展,大部分主机默认开启)
  3. 已启用QUX子主题(避免主主题升级覆盖改造代码)
  4. 百度智能云文心一言API密钥(新用户有百万字符免费额度,个人站够用1年以上)
  5. 基础的代码编辑能力,会修改子主题functions.php文件

 

原理简述

整个功能逻辑完全依托WordPress原生钩子实现,不需要修改QUX主题核心代码:

  1. 监听save_post钩子,当用户点击发布/更新文章时触发自定义函数
  2. 自动提取文章标题、正文内容,按指定格式组装prompt传给文心一言AI接口
  3. 解析AI返回的结构化内容,自动写入文章摘要(post_excerpt字段)和文章标签库
  4. 新增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);
}

 

常见问题 & 避坑

  1. API请求频繁失败?

先检查主机是否能访问百度智能云接口,部分海外主机可能有网络限制,建议用国内主机;其次把代码中的timeout参数调整到20秒,避免网络波动超时。

  1. 不想覆盖手动填写的内容?

代码中已经做了判断:只要用户手动填写了摘要或者标签,就不会覆盖对应内容,完全可以手动调整AI生成的结果。

  1. 旧文章想要批量生成?

可以临时加一段后台批量处理逻辑,或者用WP-CLI遍历所有未生成的文章触发函数,生成完成后删除批量代码即可,避免占用后台资源。

  1. 主主题升级会失效吗?

所有代码都写在子主题的functions.php中,只要不删除子主题,升级QUX主主题完全不受影响。

总结

本次改造全程只需要修改子主题文件,10分钟就能配置完成,按个人站日均更新10篇文章计算,一年能节省上百小时的内容整理时间,同时生成的摘要和标签更符合SEO规范,统一的标签体系也能提升站内关联推荐的准确率,后续还可以基于这套逻辑扩展AI生成封面图、AI生成相关推荐内容等功能。


标签:QUX主题二次开发,WordPress AI功能,PHP代码片段,自动生成文章摘要,站点效率优化,文心一言API集成

阅读全文
 收藏 (0) 打赏

您可以选择一种方式赞助本站

支付宝扫一扫赞助

微信钱包扫描赞助

未经允许不得转载:Qux官方演示站 » [AI生成]QUX主题集成AI自动生成文章标签与摘要功能实战(附PHP改造源码)
我是QUX演示主题的小编,觉得我写的作品怎么样,可以到收的首页看看哦
广告位,电脑和手机可分别设置,可放任何广告代码
广告位,电脑和手机可分别设置,可放任何广告代码

评论 抢沙发

铭宇网络建站 专业 快捷

QUX主题是一款功能强大的收费 WordPress 主题,适配个人博客、资源分享站、资讯网站等多种场景

联系我们联系我们

欢迎回来

登录 Qux官方演示站,继续你的精彩

还没有账号?立即注册

忘记密码 ?

创建账号

注册后即可体验完整功能

已有账号?直接登录