如何創建一個簡單的Gutenberg塊
創建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中文網其他相關文章!

熱AI工具

Undress AI Tool
免費脫衣圖片

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

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

Clothoff.io
AI脫衣器

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

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

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

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

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

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

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

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

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

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