准备工作
1.已经搭建好 WordPress 站点,无论是否上线网站,只需要能够连接“外网”,这样才能够正常的访问到 OpenAI 接口,因为国内已经屏蔽了 OpenAI 网站,包括 API 接口,如果没法访问“外网”,那么需要找一个 OpenAI API 的反向代理地址,或者自己利用国外服务器搭建一个反向代理的接口地址。
2.如果你已经搭建好自己的 OpenAI API 接口的代理,那么可以跳过这一步骤,或者可以通过以下代码自行搭建反向代理:
- #PROXY-START/v1/ by https://www.aybk.cn/wordpress-tag-description-by-openai-api.html
- location /{
- proxy_pass https://api.openai.com/;
- proxy_set_header Host $proxy_host;
- proxy_set_header X-Real-IP $remote_addr;
- proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
- proxy_set_header REMOTE-HOST $remote_addr;
- proxy_set_header Upgrade $http_upgrade;
- proxy_set_header Connection $connection_upgrade;
- proxy_http_version 1.1;
- proxy_ssl_server_name on;
- proxy_ssl_name $proxy_host;
- add_header X-Cache $upstream_cache_status;
- }
- #PROXY-END/
以上为 Nginx 环境的反向代理规则,大家可以参考使用,如果你和阿影我一样也是使用的宝塔面板,可以直接通过宝塔面板创建站点,绑定和解析好域名,添加反向代理,但是需要注意是否和阿影我提供的反向代理规则有区别的地方,因为直接通过宝塔面板后台添加反向代理可能会失败。
3.剩下的就需要获取 OpenAI API Keys(https://platform.openai.com/account/api-keys),同样也需要外网才能访问,初次注册的账号一般会有 5 美元的体验额度可以使用,登录后创建自己的 Keys 就可以使用 OpenAI API 接口服务了
接入 OpenAI API
完成以上准备功能,就可以编辑你的 WordPress 当前主题的 functions.php 文件,将以下代码添加到合适的位置即可实现 OpenAI 自动生成 WordPress 标签描述内容,但是需要注意的是 OpenAI 生成内容需要时间,所以可能需要稍等片刻才能在标签中看到自动生成的描述内容,其次则是只会对新增的标签自动生成,不会影响已经存在的标签。
- //WordPress 新增文章标签动作 by https://www.aybk.cn/wordpress-tag-description-by-openai-api.html
- add_action('created_post_tag', 'fanly_basic_created_post_tag', 10, 3);
- function fanly_basic_created_post_tag($term_id, $tt_id, $args) {
- wp_remote_post( admin_url( 'admin-ajax.php' ), [
- 'blocking' => false,
- 'timeout' => 1,
- 'body' =>[
- 'action' => 'fanly_basic_post_tag_description',
- 'term_id' => $term_id,
- 'name' => $args['name'] ?? null
- ]
- ]);
- }
- //WordPress 标签描述自动生成
- add_action('wp_ajax_fanly_basic_post_tag_description', 'fanly_basic_post_tag_description');
- add_action('wp_ajax_nopriv_fanly_basic_post_tag_description', 'fanly_basic_post_tag_description');
- function fanly_basic_post_tag_description() {
- $term_id = $_POST['term_id'];
- $name = $_POST['name'];
- if($name){
- $prompt = $name . '是什么 回答至少 300 字,且必须是简体中文。';//标签名称+要求
- $token = 'sk-添加你自己的 key';//secret key
- $api = 'https://api.openai.com';//接口地址,或者是反向代理的镜像地址
- $res = wp_remote_post("$api/v1/chat/completions", [
- 'headers' => ['Content-Type'=>'application/json','Authorization'=>"Bearer $token"],
- 'timeout' => 300,
- 'body' => json_encode([
- 'model' => 'gpt-3.5-turbo',//gpt-3.5-turbo gpt-4
- 'messages' => [[
- 'role' => 'user',
- 'content' => $prompt
- ]],
- 'max_tokens' => 3000
- ])
- ]);
- if(!is_wp_error($res)){
- $body = json_decode($res['body'], true);
- $content = $body['choices'][0]['message']['content'] ?? null;
- $description = trim($content);
- if($description){
- wp_update_term($term_id, 'post_tag', ['description'=>$description]);
- }
- }
- }
- }
以上代码只需要填写你自己的 key 即可使用。默认使用的是 OpenAI GPT3.5 接口,而 GPT4 接口还需要申请,晚些时候我也会给大家分享详细的 GPT4 权限的申请办法和教程。
至此就是阿影本次给大家分享的全部内容,如果大家还需要针对已经存在的 WordPress 标签自动生成描述内容,请在文章评论区留言,阿影我后期再给大家提供解决办法。当然大家也可以根据以上的代码做二次开发,做个所有标签的循环就可以实现了。
版权声明:本站资源来自互联网收集,仅供用于学习和交流,请勿用于商业用途。如有侵权、不妥之处,请联系客服并出示版权证明以便删除!