iT邦幫忙

2025 iThome 鐵人賽

DAY 25
0
生成式 AI

我的 AI 學習之路:30天 Gemma 與 Gemini系列 第 25

我的 AI 學習之路:第25天 Gemma 與 Gemini - Gemini Cli 寫WordPress 外掛

  • 分享至 

  • xImage
  •  

WordPress 不是不用寫code就有網站了嗎?

WordPress 本身是一個 內容管理系統 (CMS),裝好之後就已經能「不用寫程式」建一個網站了。

為什麼會有人「寫程式」或「寫外掛」?

外掛 (Plugin):WordPress 社群有成千上萬的外掛,像是 SEO、購物車、表單、會員系統等等,大部分功能只要安裝外掛就能用,不需要自己寫程式。

寫外掛的用途:如果你需要的功能外掛市集找不到,或現有外掛不能滿足需求,才會自己寫外掛(或請工程師寫)。例如:你想把 Google Gemini AI 整合進 WordPress 幫你生成文章,就需要客製化外掛。

所以情況是:

一般網站需求(公司介紹、部落格、電商):完全不用寫程式,只要挑佈景主題 + 裝外掛就好。

特殊需求(像是 AI 文章自動生成、跟公司內部系統串接、很客製化的功能):這時候才需要寫程式,寫外掛或改佈景。

Gemini Cli 寫WordPress 外掛

Gemini Cli

╭──────────────────────────────────────────────────────────╮
│  > 如何開發wordpress使用gemini的外掛程式  │
╰──────────────────────────────────────────────────────────╯

✦ 太棒了!開發一個整合 Gemini API 的 WordPress 外掛程式是一個非常實用的專案。下面我會提供一個完整、循序漸進的教學,從建立檔案到完成一個可以使用的基本外掛。

  這個外掛的功能是:
   1. 在 WordPress 後台提供一個設定頁面,讓你輸入你的 Gemini API 金鑰。
   2. 提供一個簡碼 (Shortcode),讓你在文章或頁面中像這樣使用:[gemini_response prompt="你好,世界"],然後它會被自動替換為 Gemini 的回覆。

  ---

  前置準備

   1. 一個 WordPress 網站:你需要有管理員權限,並且能夠上傳外掛檔案。本機開發環境或線上網站都可以。
   2. Google AI Gemini API 金鑰:前往 Google AI for Developers (https://ai.google.dev/) 獲取你的 API 金鑰。

  ---

  步驟一:建立外掛基本結構

   1. 在你的 WordPress 網站的 wp-content/plugins/ 目錄下,建立一個新的資料夾,例如 gemini-wordpress-plugin。
   2. 在這個新資料夾中,建立一個 PHP 檔案,名稱與資料夾相同,例如 gemini-wordpress-plugin.php。

   3. 打開 gemini-wordpress-plugin.php 檔案,在最上方貼上 WordPress 外掛所需的標頭資訊。這段註解非常重要,它告訴 WordPress 這是一個外掛。

    1 <?php
    2 /**
    3  * Plugin Name:       Gemini AI Assistant
    4  * Plugin URI:        https://example.com/
    5  * Description:       Integrates Google's Gemini API into your WordPress site using a shortcode.
    6  * Version:           1.0.0
    7  * Author:            Your Name
    8  * Author URI:        https://example.com/
    9  * License:           GPL v2 or later
   10  * License URI:       https://www.gnu.org/licenses/gpl-2.0.html
   11  * Text Domain:       gemini-ai
   12  */
   13 
   14 // 防止直接訪問檔案
   15 if (!defined('ABSPATH')) {
   16     exit;
   17 }
   18 
   19 // 後續的所有程式碼都將加在這裡...

  ---

  步驟二:建立後台設定頁面

  我們需要一個地方來儲存 Gemini API 金鑰。最好的方式是在 WordPress 後台新增一個設定頁面。

  將以下程式碼加入到你的 gemini-wordpress-plugin.php 檔案中:

    1 // 1. 新增後台選單
    2 function gemini_plugin_add_admin_menu() {
    3     add_options_page(
    4         'Gemini AI Settings',          // 頁面標題
    5         'Gemini AI',                   // 選單標題
    6         'manage_options',              // 所需權限
    7         'gemini_ai_settings',          // 選單 slug
    8         'gemini_plugin_settings_page'  // 顯示頁面內容的函式
    9     );
   10 }
   11 add_action('admin_menu', 'gemini_plugin_add_admin_menu');
   12 
   13 // 2. 註冊設定
   14 function gemini_plugin_register_settings() {
   15     register_setting(
   16         'gemini_plugin_options_group', // 選項組名稱
   17         'gemini_plugin_api_key'        // 選項名稱
   18     );
   19 }
   20 add_action('admin_init', 'gemini_plugin_register_settings');
   21 
   22 // 3. 渲染設定頁面的 HTML
   23 function gemini_plugin_settings_page() {
   24     ?>
   25     <div class="wrap">
   26         <h1>Gemini AI Assistant Settings</h1>
   27         <form method="post" action="options.php">
   28             <?php
   29                 settings_fields('gemini_plugin_options_group');
   30                 do_settings_sections('gemini_ai_settings');
   31             ?>
   32             <table class="form-table">
   33                 <tr valign="top">
   34                     <th scope="row">Gemini API Key</th>
   35                     <td><input type="text" name="gemini_plugin_api_key" value="<?php echo esc_attr(get_option('gemini_plugin_api_key')); ?>" size="50" /></td>
   36                 </tr>
   37             </table>
   38             <?php submit_button(); ?>
   39         </form>
   40     </div>
   41     <?php
   42 }

  現在,你可以到 WordPress 後台的「外掛」頁面啟用 "Gemini AI Assistant"。啟用後,在「設定」選單下,你應該會看到一個新的 "Gemini AI" 子選單。點擊它,你就可以輸入並儲存你的 API 金鑰了。

  ---

  步驟三:建立 Shortcode 並呼叫 Gemini API

  這是核心功能。我們將建立一個 [gemini_response] 的簡碼。當 WordPress 在文章中偵測到這個簡碼時,它會執行一個函式,該函式會呼叫 Gemini API 並返回結果。

  將以下程式碼加入到你的 gemini-wordpress-plugin.php 檔案中:

    1 function gemini_response_shortcode($atts) {
    2     // 1. 處理簡碼的參數,設定預設值
    3     $atts = shortcode_atts(
    4         array(
    5             'prompt' => 'Hello, what is WordPress?', // 預設提示
    6         ),
    7         $atts,
    8         'gemini_response'
    9     );
   10 
   11     $prompt = sanitize_text_field($atts['prompt']);
   12     $api_key = get_option('gemini_plugin_api_key');
   13 
   14     // 2. 檢查 API 金鑰和提示是否存在
   15     if (empty($api_key)) {
   16         return '<p style="color: red;">Error: Gemini API key is not set.</p>';
   17     }
   18     if (empty($prompt)) {
   19         return '<p style="color: red;">Error: Prompt is empty.</p>';
   20     }
   21 
   22     // 3. 準備 API 請求
   23     $api_url = 'https://generativelanguage.googleapis.com/v1beta/models/gemini-pro:generateContent?key=' . $api_key;
   24     
   25     $request_body = array(
   26         'contents' => array(
   27             array(
   28                 'parts' => array(
   29                     array(
   30                         'text' => $prompt
   31                     )
   32                 )
   33             )
   34         )
   35     );
   36 
   37     $args = array(
   38         'body'        => json_encode($request_body),
   39         'headers'     => array('Content-Type' => 'application/json'),
   40         'timeout'     => 60, // 60 秒超時
   41         'method'      => 'POST',
   42     );
   43 
   44     // 4. 使用 WordPress 的 HTTP API 發送請求
   45     $response = wp_remote_post($api_url, $args);
   46 
   47     // 5. 處理 API 回應
   48     if (is_wp_error($response)) {
   49         return '<p style="color: red;">Error: Failed to connect to API. ' . $response->get_error_message() . '</p>';
   50     }
   51 
   52     $response_body = wp_remote_retrieve_body($response);
   53     $result = json_decode($response_body, true);
   54 
   55     // 檢查 Gemini API 是否返回錯誤
   56     if (isset($result['error'])) {
   57         return '<p style="color: red;">API Error: ' . esc_html($result['error']['message']) . '</p>';
   58     }
   59 
   60     // 提取並返回 Gemini 的回覆
   61     if (isset($result['candidates'][0]['content']['parts'][0]['text'])) {
   62         $gemini_text = $result['candidates'][0]['content']['parts'][0]['text'];
   63         // 將 Markdown 格式的換行符轉換為 HTML 的 <br>
   64         return wpautop(esc_html($gemini_text)); 
   65     }
   66 
   67     return '<p style="color: red;">Error: Could not parse Gemini response.</p>';
   68 }
   69 add_shortcode('gemini_response', 'gemini_response_shortcode');

  步驟四:如何使用

   1. 啟用外掛:到 WordPress 後台 > 外掛,啟用 "Gemini AI Assistant"。
   2. 設定 API 金鑰:到 WordPress 後台 > 設定 > Gemini AI,輸入你的 Gemini API 金鑰並儲存。
   3. 在文章中使用:建立或編輯一個文章/頁面,在內容編輯器中輸入以下簡碼:

   1     [gemini_response prompt="請用中文介紹一下什麼是 WordPress"]
      或者
   1     [gemini_response prompt="寫一首關於程式設計的短詩"]
   4. 預覽/發布:儲存並查看你的文章,簡碼會被替換成 Gemini API 的回覆內容。

  ---

  接下來的進階功能建議

  這個基本外掛已經可以運作了,但你還可以擴充很多功能,讓它更強大:

   1. 非同步請求 (AJAX):目前的方式會在頁面載入時呼叫 API,如果 API 回應慢,會拖慢整個頁面。你可以改成用 JavaScript (AJAX) 在頁面載入後再發送請求,並顯示一個「載入中...」的動畫。
   2. 快取 (Cache):對於相同的 prompt,API 的回覆可能是一樣的。你可以將結果暫存在 WordPress 的 Transients API 中,設定一個過期時間(例如 24 小時)。這樣可以大幅減少 API 
      呼叫次數,節省成本並加快速度。
   3. 更豐富的 UI:與其用簡碼,你可以在文章編輯器側邊欄新增一個 Meta Box,讓使用者可以直接輸入提示詞,點擊按鈕生成內容並插入到文章中。
   4. 支援更多參數:Gemini API 有很多參數可以調整,比如 temperature, maxOutputTokens 等。你可以讓使用者在簡碼中設定這些參數。
   5. 錯誤處理:提供更詳細、對使用者更友善的錯誤訊息。

╭──────────────────────────────╮
│  > 可以用local來測試嗎  │
╰──────────────────────────────╯

✦ 當然可以!使用本地端 (Local) 環境來測試是開發 WordPress 外掛的標準做法,而且是強烈推薦的方式。

  在本地端開發有非常多的好處:
   * 安全:你不會影響到任何線上的正式網站,可以隨意修改和測試,不用擔心弄壞東西。
   * 快速:所有檔案都在你的電腦上,修改程式碼後儲存即可立即看到效果,不需要透過 FTP 或其他方式上傳檔案。
   * 免費:本地環境是免費的,而且在 Gemini API 的免費額度內,你也不需要花任何錢。
   * 離線工作:除了需要呼叫 Gemini API 的那一刻,大部分的開發工作都可以在沒有網路連線的情況下完成。

  如何設定本地 WordPress 環境

  對於 WordPress 開發,最推薦的工具叫做 Local (以前叫做 Local by Flywheel)。它是一個免費的應用程式,可以一鍵建立和管理本地的 WordPress 網站,操作非常簡單。

  步驟一:下載並安裝 Local

  前往官方網站下載符合你作業系統的 Local 應用程式。
  官方網站:[https://localwp.com/](https://localwp.com/)

  步驟二:在 Local 中建立一個新網站

   1. 打開 Local 應用程式。
   2. 點擊左下角的 + 按鈕 (Create a new site)。
   3. 跟隨引導,輸入你的網站名稱(例如 gemini-test)。
   4. 選擇預設的環境設定 (Preferred) 即可,它會自動幫你設定好 PHP、Web 伺服器和資料庫。
   5. 設定你的 WordPress 管理員帳號和密碼。
   6. 點擊 "Add Site",等待幾分鐘,Local 就會幫你把整個 WordPress 網站架設好。

  步驟三:找到你的外掛資料夾

   1. 在 Local 的介面中,你會看到你剛剛建立的網站。
   2. 在網站名稱旁邊,點擊 "Go to site folder" 按鈕(或是一個指向右邊的箭頭圖示)。
   3. 這會打開你電腦的檔案總管,並定位到該網站的根目錄。路徑看起來會像這樣:
       * macOS: /Users/你的使用者名稱/Local Sites/gemini-test/
       * Windows: C:\Users\你的使用者名稱\Local Sites\gemini-test\
   4. 進入 app/public/wp-content/plugins/ 這個路徑。這裡就是你本地網站的外掛資料夾。

  步驟四:放入並啟用你的 Gemini 外掛

   1. 將你之前建立的 gemini-wordpress-plugin 資料夾整個複製到這個 plugins 資料夾裡面。
   2. 回到 Local 應用程式,點擊 "WP Admin" 按鈕,登入你本地網站的 WordPress 後台。
   3. 跟在線上網站一樣,到「外掛」頁面,你就會看到 "Gemini AI Assistant",點擊「啟用」。
   4. 接著去「設定」>「Gemini AI」輸入你的 API 金鑰並測試。

  一個重要的提醒

  雖然你的 WordPress 網站是在本地端運行的,但是你的外掛需要呼叫 Google 的 Gemini API。這是一個外部網路請求。

  所以,在測試 API 功能時,你的電腦必須要連上網路。

  如果沒有網路,wp_remote_post() 函式會失敗,你的外掛會顯示無法連接到 API 的錯誤訊息。

  總結來說,使用 Local 進行開發是完全可行的,也是最專業、最高效的方式。祝你開發順利!

╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ You are running Gemini CLI in your home directory. It is recommended to run in a project-specific directory.                                                                         │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯


Using: 1 GEMINI.md file
╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ >   Type your message or @path/to/file                                                                                                                                               │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
~                                                              no sandbox (see /docs)                                                                gemini-2.5-pro (99% context left)


使用lcaolwp測試

╭──────────────────────────────╮
│  > 可以用local來測試嗎  │
╰──────────────────────────────╯

✦ 當然可以!使用本地端 (Local) 環境來測試是開發 WordPress 外掛的標準做法,而且是強烈推薦的方式。

  在本地端開發有非常多的好處:
   * 安全:你不會影響到任何線上的正式網站,可以隨意修改和測試,不用擔心弄壞東西。
   * 快速:所有檔案都在你的電腦上,修改程式碼後儲存即可立即看到效果,不需要透過 FTP 或其他方式上傳檔案。
   * 免費:本地環境是免費的,而且在 Gemini API 的免費額度內,你也不需要花任何錢。
   * 離線工作:除了需要呼叫 Gemini API 的那一刻,大部分的開發工作都可以在沒有網路連線的情況下完成。

  如何設定本地 WordPress 環境

  對於 WordPress 開發,最推薦的工具叫做 Local (以前叫做 Local by Flywheel)。它是一個免費的應用程式,可以一鍵建立和管理本地的 WordPress 網站,操作非常簡單。

  步驟一:下載並安裝 Local

  前往官方網站下載符合你作業系統的 Local 應用程式。
  官方網站:[https://localwp.com/](https://localwp.com/)

  步驟二:在 Local 中建立一個新網站

   1. 打開 Local 應用程式。
   2. 點擊左下角的 + 按鈕 (Create a new site)。
   3. 跟隨引導,輸入你的網站名稱(例如 gemini-test)。
   4. 選擇預設的環境設定 (Preferred) 即可,它會自動幫你設定好 PHP、Web 伺服器和資料庫。
   5. 設定你的 WordPress 管理員帳號和密碼。
   6. 點擊 "Add Site",等待幾分鐘,Local 就會幫你把整個 WordPress 網站架設好。

  步驟三:找到你的外掛資料夾

   1. 在 Local 的介面中,你會看到你剛剛建立的網站。
   2. 在網站名稱旁邊,點擊 "Go to site folder" 按鈕(或是一個指向右邊的箭頭圖示)。
   3. 這會打開你電腦的檔案總管,並定位到該網站的根目錄。路徑看起來會像這樣:
       * macOS: /Users/你的使用者名稱/Local Sites/gemini-test/
       * Windows: C:\Users\你的使用者名稱\Local Sites\gemini-test\
   4. 進入 app/public/wp-content/plugins/ 這個路徑。這裡就是你本地網站的外掛資料夾。

  步驟四:放入並啟用你的 Gemini 外掛

   1. 將你之前建立的 gemini-wordpress-plugin 資料夾整個複製到這個 plugins 資料夾裡面。
   2. 回到 Local 應用程式,點擊 "WP Admin" 按鈕,登入你本地網站的 WordPress 後台。
   3. 跟在線上網站一樣,到「外掛」頁面,你就會看到 "Gemini AI Assistant",點擊「啟用」。
   4. 接著去「設定」>「Gemini AI」輸入你的 API 金鑰並測試。

  一個重要的提醒

  雖然你的 WordPress 網站是在本地端運行的,但是你的外掛需要呼叫 Google 的 Gemini API。這是一個外部網路請求。

  所以,在測試 API 功能時,你的電腦必須要連上網路。

  如果沒有網路,wp_remote_post() 函式會失敗,你的外掛會顯示無法連接到 API 的錯誤訊息。

  總結來說,使用 Local 進行開發是完全可行的,也是最專業、最高效的方式。祝你開發順利!
  

執行結果

https://ithelp.ithome.com.tw/upload/images/20250926/20121643YtYF1YxJ3d.png

總結

第一次使用WordPress 就開發了外掛程式,還可以成功的執行起來,只能說
Gemini Cli 真的太神啦!!!!!

上一篇
我的 AI 學習之路:第24天 Gemma 與 Gemini - Gemini Cli 與 Android
系列文
我的 AI 學習之路:30天 Gemma 與 Gemini25
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言