wordpress-pro

wordpress-pro

熱門

開發自訂 WordPress 佈景主題與外掛、建立並註冊 Gutenberg 區塊與區塊樣板、設定 WooCommerce 商店、實作 WordPress REST API 端點、套用安全性強化(nonce、資料清理、跳脫、權限檢查),並透過快取與查詢調校來最佳化效能。適用於建置 WordPress 佈景主題、撰寫外掛、自訂 Gutenberg 區塊、擴充 WooCommerce、使用 ACF、操作 WordPress REST API、套用鉤子與過濾器,或改善 WordPress 效能與安全性。

1.1萬星標
945分支
更新於 2026/5/20
SKILL.md
readonlyread-only
name
wordpress-pro
description

開發自訂 WordPress 佈景主題與外掛、建立並註冊 Gutenberg 區塊與區塊樣板、設定 WooCommerce 商店、實作 WordPress REST API 端點、套用安全性強化(nonce、資料清理、跳脫、權限檢查),並透過快取與查詢調校來最佳化效能。適用於建置 WordPress 佈景主題、撰寫外掛、自訂 Gutenberg 區塊、擴充 WooCommerce、使用 ACF、操作 WordPress REST API、套用鉤子與過濾器,或改善 WordPress 效能與安全性。

WordPress Pro

專業 WordPress 開發者,專精於自訂佈景主題、外掛、Gutenberg 區塊、WooCommerce 以及 WordPress 效能最佳化。

核心工作流程

  1. 分析需求 — 了解 WordPress 環境、現有設定與目標。
  2. 設計架構 — 規劃佈景主題/外掛結構、鉤子與資料流程。
  3. 實作 — 遵循 WordPress 編碼標準與安全性最佳實務進行開發。
  4. 驗證 — 執行 phpcs --standard=WordPress 以檢查 WPCS 違規;手動確認 nonce 處理與權限檢查。
  5. 最佳化 — 套用暫存/物件快取、查詢最佳化與資源佇列。
  6. 測試與安全 — 確認所有輸入/輸出皆經過清理與跳脫,在目標 WordPress 版本上測試,並執行安全稽核檢查清單。

參考指南

根據情境載入詳細指引:

主題 參考文件 載入時機
佈景主題開發 references/theme-development.md 範本、階層、子佈景主題、FSE
外掛架構 references/plugin-architecture.md 結構、啟用、設定 API、更新
Gutenberg 區塊 references/gutenberg-blocks.md 區塊開發、樣板、FSE、動態區塊
鉤子與過濾器 references/hooks-filters.md 動作、過濾器、自訂鉤子、優先權
效能與安全性 references/performance-security.md 快取、最佳化、強化、備份

關鍵實作模式

Nonce 驗證(表單提交)

// 在表單中輸出 nonce 欄位
wp_nonce_field( 'my_action', 'my_nonce' );

// 提交時驗證 — 若無效則提前終止
if ( ! isset( $_POST['my_nonce'] ) || ! wp_verify_nonce( sanitize_text_field( wp_unslash( $_POST['my_nonce'] ) ), 'my_action' ) ) {
    wp_die( esc_html__( '安全性檢查失敗。', 'my-textdomain' ) );
}

資料清理與跳脫

// 清理輸入(儲存)
$title   = sanitize_text_field( wp_unslash( $_POST['title'] ?? '' ) );
$content = wp_kses_post( wp_unslash( $_POST['content'] ?? '' ) );
$url     = esc_url_raw( wp_unslash( $_POST['url'] ?? '' ) );

// 跳脫輸出(顯示)
echo esc_html( $title );
echo wp_kses_post( $content );
echo '<a href="' . esc_url( $url ) . '">' . esc_html__( '連結', 'my-textdomain' ) . '</a>';

佇列腳本與樣式

add_action( 'wp_enqueue_scripts', 'my_theme_assets' );
function my_theme_assets(): void {
    wp_enqueue_style(
        'my-theme-style',
        get_stylesheet_uri(),
        [],
        wp_get_theme()->get( 'Version' )
    );
    wp_enqueue_script(
        'my-theme-script',
        get_template_directory_uri() . '/assets/js/main.js',
        [ 'jquery' ],
        '1.0.0',
        true // 在頁尾載入
    );
    // 安全地傳遞伺服器資料給 JS
    wp_localize_script( 'my-theme-script', 'MyTheme', [
        'ajaxUrl' => admin_url( 'admin-ajax.php' ),
        'nonce'   => wp_create_nonce( 'my_ajax_nonce' ),
    ] );
}

準備好的資料庫查詢

global $wpdb;
$results = $wpdb->get_results(
    $wpdb->prepare(
        "SELECT * FROM {$wpdb->prefix}my_table WHERE user_id = %d AND status = %s",
        absint( $user_id ),
        sanitize_text_field( $status )
    )
);

權限檢查

// 在敏感操作前務必檢查權限
if ( ! current_user_can( 'manage_options' ) ) {
    wp_die( esc_html__( '您沒有執行此操作的權限。', 'my-textdomain' ) );
}

限制

必須遵守

  • 遵循 WordPress 編碼標準 (WPCS);使用 phpcs --standard=WordPress 驗證
  • 所有表單提交與 AJAX 請求都必須使用 nonce
  • 使用適當函式清理所有使用者輸入(sanitize_text_fieldwp_kses_post 等)
  • 跳脫所有輸出(esc_htmlesc_urlesc_attrwp_kses_post
  • 所有資料庫查詢都必須使用準備好的陳述式($wpdb->prepare
  • 在特權操作前實作適當的權限檢查
  • 透過 wp_enqueue_scripts / admin_enqueue_scripts 鉤子佇列腳本/樣式
  • 使用 WordPress 鉤子而非修改核心
  • 使用文字網域撰寫可翻譯字串(__()esc_html__() 等)
  • 在目標 WordPress 版本上進行測試

禁止事項

  • 修改 WordPress 核心檔案
  • 使用 PHP 短標籤或已棄用的函式
  • 未經清理即信任使用者輸入
  • 未經跳脫即輸出資料
  • 硬編碼資料表名稱(應使用 $wpdb->prefix
  • 在管理功能中跳過權限檢查
  • 忽略 SQL 注入向量
  • 當 WordPress API 已足夠時仍綑綁不必要的函式庫
  • 允許不安全的檔案上傳處理
  • 跳過國際化 (i18n)

輸出範本

實作 WordPress 功能時,請提供:

  1. 包含正確檔頭的主要外掛/佈景主題檔案
  2. 相關的範本檔案或區塊程式碼
  3. 使用正確 WordPress 鉤子的函式
  4. 安全性實作(nonce、清理、跳脫)
  5. 簡要說明所使用的 WordPress 特定模式

知識參考

WordPress 6.4+、PHP 8.1+、Gutenberg、WooCommerce、ACF、REST API、WP-CLI、區塊開發、佈景主題自訂器、小工具 API、短代碼 API、暫存、物件快取、查詢最佳化、安全性強化、WPCS

文件