前面子凡分享过《OpenAI API 接口是否值得站长们使用》的文章中提到过,利用 OpenAI API 接口自动生成 WordPress 网站的 Tag 标签描述,以此来达到 WordPress 标签聚合页面的自动优化,从而实现 WordPress 网站的优化排名,当然以下子凡分享的内容将主要适用于 WordPress 网站,非 WordPress 站点大家可以参考其思路开发适合自己网站 CMS 系统的功能。

WordPress OpenAI

准备工作

1.已经搭建好 WordPress 站点,无论是否上线网站,只需要能够连接“外网”,这样才能够正常的访问到 OpenAI 接口,因为国内已经屏蔽了 OpenAI 网站,包括 API 接口,如果没法访问“外网”,那么需要找一个 OpenAI API 的反向代理地址,或者自己利用国外服务器搭建一个反向代理的接口地址。

2.如果你已经搭建好自己的 OpenAI API 接口的代理,那么可以跳过这一步骤,否者可以通过以下代码自行搭建反向代理:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#PROXY-START/v1/
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 环境的反向代理规则,大家可以参考使用,如果你和子凡我一样也是使用的宝塔面板《花 1.8w 购买宝塔面板是否值得》,可以直接通过宝塔面板创建站点,绑定和解析好域名,添加反向代理,但是需要注意是否和子凡我提供的反向代理规则有区别的地方,因为直接通过宝塔面板后台添加反向代理可能会失败。

3.剩下的就需要获取 OpenAI API Keys(https://platform.openai.com/account/api-keys),同样也需要外网才能访问,初次注册的账号一般会有 5 美元的体验额度可以使用,登录后创建自己的 Keys 就可以使用 OpenAI API 接口服务了,如果有站长朋友还不知道怎么注册 OpenAI 账号的,可以在泪雪博客或者子凡的公众号(张子凡,hiZhangzifan)留言,如果确实有需要我后期也可以写一篇 OpenAI 账号注册教程。

接入 OpenAI API

完成以上准备功能,就可以编辑你的 WordPress 当前主题的 functions.php 文件,将以下代码添加到合适的位置即可实现 OpenAI 自动生成 WordPress 标签描述内容,但是需要注意的是 OpenAI 生成内容需要时间,所以可能需要稍等片刻才能在标签中看到自动生成的描述内容,其次则是只会对新增的标签自动生成,不会影响已经存在的标签。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
//WordPress 新增文章标签动作
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 请求 OpenAI ChatGPT API 代码》就已经给大家提供思路了,此次的代码无非就是基于之前的分享做了针对 WordPress 标签描述的写入功能而已。

至此就是子凡本次给大家分享的全部内容,如果大家还需要针对已经存在的 WordPress 标签自动生成描述内容,请在我的公众号留言,子凡我后期再给大家提供解决办法。当然大家也可以根据以上的代码做二次开发,做个所有标签的循环就可以实现了。

更多关于WordPress优化及疑问可以添加QQ群:255308000

除非注明,否则均为泪雪博客原创文章,禁止任何形式转载

本文链接:https://zhangzifan.com/wordpress-tag-description-by-openai-api.html

留言评论

登录 后留言