下面是一个简单的示例插件,它提供一个文字输入区域,可以将用户输入的文本发送到ChatGPT API,并将生成的文本显示在页面上。
首先,你需要创建一个新的文件夹,命名为”chatgpt-plugin”,并在其中创建一个名为”chatgpt-plugin.php”的文件。在这个文件中,你需要定义一个类,用于实现插件的功能。
<?php /** * Plugin Name: ChatGPT Plugin * Plugin URI: https://www.xiaozhongpai.com/ * Description: A plugin that integrates with ChatGPT API. * Version: 1.0.0 * Author: 小众派 * Author URI: https://www.xiaozhongpai.com/ * License: GPL2 */ class ChatGPT_Plugin { private $api_key = 'YOUR_API_KEY'; // 替换为你的ChatGPT API密钥 public function __construct() { add_action( 'admin_menu', array( $this, 'add_plugin_page' ) ); add_action( 'admin_init', array( $this, 'page_init' ) ); } public function add_plugin_page() { add_options_page( 'ChatGPT Plugin Settings', 'ChatGPT Plugin', 'manage_options', 'chatgpt-plugin', array( $this, 'create_admin_page' ) ); } public function create_admin_page() { ?> <div class="wrap"> <h1>ChatGPT Plugin Settings</h1> <form method="post" action="options.php"> <?php settings_fields( 'chatgpt_plugin_options' ); do_settings_sections( 'chatgpt-plugin' ); submit_button(); ?> </form> </div> <?php } public function page_init() { register_setting( 'chatgpt_plugin_options', 'chatgpt_plugin_options', array( $this, 'sanitize' ) ); add_settings_section( 'chatgpt_plugin_section', 'ChatGPT API Settings', array( $this, 'print_section_info' ), 'chatgpt-plugin' ); add_settings_field( 'api_key', 'API Key', array( $this, 'api_key_callback' ), 'chatgpt-plugin', 'chatgpt_plugin_section' ); } public function sanitize( $input ) { $new_input = array(); if( isset( $input['api_key'] ) ) $new_input['api_key'] = sanitize_text_field( $input['api_key'] ); return $new_input; } public function print_section_info() { print 'Enter your ChatGPT API key below:'; } public function api_key_callback() { printf( '<input type="text" id="api_key" name="chatgpt_plugin_options[api_key]" value="%s" />', isset( $this->api_key ) ? esc_attr( $this->api_key ) : '' ); } } new ChatGPT_Plugin();
在上面的代码中,我们定义了一个名为”ChatGPT_Plugin”的类,它实现了一个简单的设置页面,让用户可以输入他们的ChatGPT API密钥。我们使用WordPress的”add_options_page”函数来添加一个设置页面,并使用”register_setting”函数来注册一个新的设置选项。
接下来,我们需要添加一个文本输入框,让用户可以输入要发送到ChatGPT API的文本。我们可以在”create_admin_page”函数中添加以下代码:
public function create_admin_page() { ?> <div class="wrap"> <h1>ChatGPT Plugin Settings</h1> <form method="post" action="options.php"> <?php settings_fields( 'chatgpt_plugin_options' ); do_settings_sections( 'chatgpt-plugin' ); ?> <h2>Generate Text</h2> <textarea id="input_text" name="input_text" rows="5" cols="50"></textarea> <br> <input type="submit" name="submit" value="Generate Text" class="button button-primary"> </form> </div> <?php }
在上面的代码中,我们添加了一个名为”input_text”的文本输入框,并在表单中添加了一个名为”submit”的提交按钮。当用户点击提交按钮时,我们将调用一个名为”generate_text”的函数,该函数将发送用户输入的文本到ChatGPT API,并将生成的文本显示在页面上。
下面是”generate_text”函数的代码:
public function generate_text() { if ( isset( $_POST['submit'] ) ) { $input_text = sanitize_text_field( $_POST['input_text'] ); $api_key = get_option( 'chatgpt_plugin_options' )['api_key']; $url = 'https://api.openai.com/v1/engines/davinci-codex/completions'; $data = array( 'prompt' => $input_text, 'max_tokens' => 100, 'temperature' => 0.7, 'n' => 1, 'stop' => '\n' ); $headers = array( 'Content-Type: application/json', 'Authorization: Bearer ' . $api_key ); $response = wp_remote_post( $url, array( 'headers' => $headers, 'body' => json_encode( $data ) ) ); if ( is_wp_error( $response ) ) { echo 'Error: ' . $response->get_error_message(); } else { $body = json_decode( wp_remote_retrieve_body( $response ), true ); $generated_text = $body['choices'][0]['text']; echo '<h2>Generated Text</h2>'; echo '<p>' . $generated_text . '</p>'; } } }
在上面的代码中,我们首先检查用户是否点击了提交按钮。如果是,我们从”$_POST”数组中获取用户输入的文本,并从插件设置中获取ChatGPT API密钥。然后,我们使用WordPress的”wp_remote_post”函数向ChatGPT API发送POST请求,并将生成的文本显示在页面上。
最后,我们需要在”create_admin_page”函数中调用”generate_text”函数,以便在页面上显示生成的文本。我们可以在表单中添加以下代码:
<form method="post" action=""> <?php settings_fields( 'chatgpt_plugin_options' ); do_settings_sections( 'chatgpt-plugin' ); ?> <h2>Generate Text</h2> <textarea id="input_text" name="input_text" rows="5" cols="50"></textarea> <br> <input type="submit" name="submit" value="Generate Text" class="button button-primary"> <?php $this->generate_text(); ?> </form>
现在,你可以将这个插件上传到WordPress,并在后台启用它。当用户访问插件设置页面时,他们将看到一个文本输入框和一个提交按钮。他们可以输入要发送到ChatGPT API的文本,并点击提交按钮。插件将向ChatGPT API发送请求,并将生成的文本显示在页面上。