目錄
準備工作:設置開發環境
創建基本結構:註冊塊和編輯組件
PHP 部分(註冊塊)
JavaScript 部分(定義塊)
構建和運行:用npm 編譯JS 文件
小技巧和常見問題
首頁 CMS教程 &#&按 如何創建一個簡單的Gutenberg塊

如何創建一個簡單的Gutenberg塊

Jun 28, 2025 am 12:13 AM

創建Gutenberg 塊的關鍵在於理解其基本結構並正確連接前後端資源。 1. 準備開發環境:安裝本地WordPress、Node.js 和@wordpress/scripts;2. 使用PHP 註冊塊並用JavaScript 定義塊的編輯和顯示邏輯;3. 通過npm 構建JS 文件以使更改生效;4. 遇到問題時檢查路徑、圖標是否正確或使用實時監聽構建避免重複手動編譯。按照這些步驟,可以逐步實現一個簡單的Gutenberg 塊。

創建一個簡單的Gutenberg 塊其實並不難,尤其是如果你已經熟悉WordPress 的基本開發流程。 Gutenberg 是WordPress 的新編輯器,它通過“塊”來組織內容,每個塊就是一個獨立的內容單元。如果你想自定義一個自己的塊,可以從最基礎的開始,一步步實現。

下面是一些實用步驟和建議,幫你快速上手。


準備工作:設置開發環境

在開始寫代碼之前,確保你有一個適合開發的WordPress 環境。你可以使用本地開發工具(如Local 或XAMPP)搭建一個測試站點。

  • 安裝最新版WordPress
  • 安裝Node.js 和npm(用於構建JavaScript 文件)
  • 安裝@wordpress/scripts包,這是官方推薦的腳本工具集

你可以通過以下命令安裝必要的依賴:

 npm install --save-dev @wordpress/scripts

然後,在你的主題或插件中創建一個目錄來存放塊的代碼,比如/blocks/my-first-block/


創建基本結構:註冊塊和編輯組件

一個Gutenberg 塊通常由兩個部分組成: PHP 用來註冊塊JavaScript 用來定義塊的外觀和行為

PHP 部分(註冊塊)

在你的主題functions.php文件中添加如下代碼,或者在插件中加載:

 function register_my_first_block() {
    wp_register_script(
        'my-first-block',
        get_template_directory_uri() . '/blocks/my-first-block/build/index.js',
        array( 'wp-blocks', 'wp-element' )
    );

    register_block_type( 'my-plugin/first-block', array(
        'editor_script' => 'my-first-block',
    ) );
}
add_action( 'init', 'register_my_first_block' );

這段代碼告訴WordPress 這個塊的JS 腳本在哪裡,並註冊了一個新的塊類型。

JavaScript 部分(定義塊)

/blocks/my-first-block/src/index.js中寫入如下內容:

 const { registerBlockType } = wp.blocks;
const { RichText } = wp.editor;

registerBlockType( 'my-plugin/first-block', {
    title: '我的第一個塊',
    icon: 'smiley',
    category: 'common',

    edit: () => {
        return (
            <RichText
                tagName="p"
                placeholder="輸入一些文字..."
            />
        );
    },

    save: () => {
        return <RichText.Content tagName="p" value="這是一個靜態文本" />;
    },
} );

這樣你就創建了一個可以在編輯器中看到的塊了。


構建和運行:用npm 編譯JS 文件

Gutenberg 塊需要將JavaScript 編譯成瀏覽器可以識別的格式。你可以使用WordPress 提供的腳本工具自動完成這個過程。

在項目根目錄下創建一個package.json文件,加入如下配置:

 {
  "name": "my-first-block",
  "version": "1.0.0",
  "scripts": {
    "build": "wp-scripts build ./blocks/my-first-block/src/index.js"
  }
}

然後運行:

 npm run build

每次修改完JS 文件後,都要重新運行一次build命令,讓更改生效。


小技巧和常見問題

  • 圖標顯示不出來?可以使用WordPress Dashicons中的圖標名。

  • 塊不顯示?檢查JS 是否編譯成功,以及PHP 註冊路徑是否正確。

  • 不想每次都手動編譯?可以加上--watch參數,實時監聽文件變化並自動構建:

     npx wp-scripts build ./blocks/my-first-block/src/index.js --watch

    基本上就這些。從零開始創建一個Gutenberg 塊,關鍵在於理解塊的基本結構和如何連接前後端資源。雖然看起來有點複雜,但只要一步一步來,很快就能掌握。

    以上是如何創建一個簡單的Gutenberg塊的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

PHP教程
1537
276
如何使用WP-CLI管理Cron Job 如何使用WP-CLI管理Cron Job Jul 21, 2025 am 12:50 AM

TomanagecronjobsinWordPressusingWP-CLI,youcanlist,run,schedule,anddeleteeventsviacommand-linetools.1.Usewpcroneventlisttocheckactivecroneventsandfilterwith--hook=some_hook_name.2.Manuallytriggerataskwithwpcroneventrunsome_hook_name.3.Schedulenewtasks

如何安全處理外部API調用 如何安全處理外部API調用 Jul 24, 2025 am 12:07 AM

要安全調用外部API,需從訪問控制、數據保護和響應驗證三方面入手。 ①使用APIKey、OAuthToken或JWT等認證機制,並將密鑰存儲在環境變量或密鑰管理服務中,定期輪換;避免前端暴露密鑰,選擇OAuth2.0並採用合適授權模式。 ②對接口返回的數據進行結構和內容校驗,確認Content-Type、字段類型,檢查狀態碼,過濾XSS內容,設置合理超時時間。 ③通過令牌桶或漏桶算法實現限流,記錄用戶API使用情況,結合緩存減少重複請求,防止觸發對方限流或被封禁IP。

如何逃避WordPress中的數據 如何逃避WordPress中的數據 Jul 21, 2025 am 12:17 AM

數據逃逸和消毒是WordPress安全開發的兩個關鍵步驟。 1.數據消毒(Sanitize)用於安全存儲,在保存用戶輸入前進行處理,如使用sanitize_text_field()、sanitize_email()等函數清理數據;2.數據逃逸(Escape)用於安全展示,在輸出到前端時進行處理,如使用esc_html()、esc_url()等函數防止腳本執行;3.使用合適的鉤子和函數庫,如wp_kses_post()過濾富文本內容,add_query_arg()安全操作URL參數;4.注意不同場景

如何將插件選項存儲在WordPress中 如何將插件選項存儲在WordPress中 Jul 27, 2025 am 12:29 AM

在WordPress插件開發中,正確存儲插件選項的推薦方法是使用register_setting()結合get_option()和update_option()。首先,通過register_setting('section','option_name')註冊設置項;其次,在表單提交時使用update_option('option_name',$value)保存數據;再次,頁面加載時用get_option('option_name','default_value')獲取值;此外,建議將多個字段合併

如何將類別從循環中排除 如何將類別從循環中排除 Aug 07, 2025 am 08:45 AM

在WordPress中排除特定分類的方法有三種:使用query_posts()、利用pre_get_posts鉤子或借助插件。首先,使用query_posts()可在模板文件中直接修改主循環查詢,如query_posts(array('category__not_in'=>array(3,5))),適合臨時調整但可能影響分頁;其次,通過pre_get_posts鉤子在functions.php中添加函數更安全,如判斷首頁主循環時排除指定分類ID,不影響其他頁面邏輯;最後,可選用WPCate

如何創建自定義頁面模板 如何創建自定義頁面模板 Jul 21, 2025 am 12:52 AM

創建自定義頁面模板的關鍵在於理解平台機制並遵循規範。 1.首先明確平台類型及模板結構,如WordPress通過特定註釋的PHP文件定義模板,Hugo將模板放在layouts目錄,React則用組件化方式引入佈局。 2.按命名和存放規則組織文件,如WordPress模板放主題根目錄、Hugo使用baseof.html為基礎模板、Jekyll通過\_layouts文件夾中的layout字段引用模板,避免路徑或配置錯誤。 3.使用模板繼承提升復用性,定義基礎模板並在具體頁面中覆蓋部分內容,減少重複代碼並保持

如何將WPDB類用於自定義查詢 如何將WPDB類用於自定義查詢 Jul 27, 2025 am 12:31 AM

要安全高效地在WordPress中運行自定義數據庫查詢,應使用內置的wpdb類。 1.使用全局變量$wpdb並理解其基本屬性如$wpdb->prefix;2.運行SELECT查詢時使用$wpdb->prepare()方法防止SQL注入,根據結果數量選擇get_results、get_row或get_var;3.插入、更新和刪除數據時使用insert()、update()和delete()方法,並確保格式正確;4.調試時檢查last_error和last_query以處理錯誤;5.注意性

如何使用Gutenberg的RichText組件 如何使用Gutenberg的RichText組件 Jul 22, 2025 am 12:40 AM

Gutenberg的RichText組件是創建可編輯文本區域的核心工具,適合標題、段落等內容的編輯。 1.基本用法是引入RichText並傳入value和onChange屬性實現內容保存;2.通過formattingControls開啟富文本格式如加粗、斜體、鏈接;3.多個文本區域可通過分別綁定不同屬性字段管理;4.注意事項包括明確tagName、加載CSS、避免嵌套及使用placeholder提升體驗。掌握這些要點有助於高效開發自定義區塊。

See all articles