亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

目錄
是什麼使塊“動態(tài)”
設置塊結(jié)構(gòu)
用渲染回調(diào)註冊塊
處理屬性和用戶輸入
首頁 CMS教程 &#&按 如何構(gòu)建動態(tài)的Gutenberg塊

如何構(gòu)建動態(tài)的Gutenberg塊

Jul 28, 2025 am 12:50 AM

動態(tài)的Gutenberg塊使用服務器端渲染每次加載時顯示最新內(nèi)容。與靜態(tài)塊不同,加載頁面時,動態(tài)塊執(zhí)行PHP代碼,允許使用最新帖子或用戶特定內(nèi)容的實時數(shù)據(jù)。關(guān)鍵步驟包括:1)使用block.json,edit.js,save.js和php渲染文件設置基本塊結(jié)構(gòu); 2)在PHP中使用Render_Callback註冊塊; 3)使用從編輯器傳遞的屬性生成動態(tài)輸出; 4)通過edit.js中的控件來處理用戶輸入,以更新PHP查詢中使用的塊屬性。這種方法可確保靈活性和實時數(shù)據(jù),而無需犧牲與塊編輯器的兼容性。

構(gòu)建動態(tài)的Gutenberg塊與製造常規(guī)塊沒有太大的不同,但它增加了服務器端渲染的扭曲。如果您希望每次查看塊(例如最近的帖子或特定於用戶的內(nèi)容),這就是您所需要的。

是什麼使塊“動態(tài)”

動態(tài)塊不會將其輸出作為帖子內(nèi)容中的靜態(tài)HTML保存為靜態(tài)HTML。相反,每次加載帖子時,它都會運行PHP代碼,從而使其顯示最新信息。這對於諸如:

  • 最近發(fā)布的小部件
  • 顯示用戶配置文件
  • 現(xiàn)場評論很重要

在前端,WordPress僅存儲塊元數(shù)據(jù)和屬性,而不是在帖子內(nèi)容中看到RAW HTML。當頁面加載時,而不是編輯時,實際的標記將生成。

設置塊結(jié)構(gòu)

首先使用@wordpress/create-block軟件包創(chuàng)建基本塊或手動設置您的block.json 。無論哪種方式,主要區(qū)別在稍後您註冊塊的渲染回調(diào)。

這是通常包含的內(nèi)容:

  • 定義元數(shù)據(jù)(名稱,標題,類別等) block.json
  • 編輯器接口的edit.js文件
  • 一個save.js文件 - 即使它返回null,因為真實內(nèi)容將呈現(xiàn)服務器端
  • 渲染邏輯壽命的PHP文件

您無需在PHP中寫所有UI,只需定義保存的內(nèi)容以及渲染時的行為。

用渲染回調(diào)註冊塊

這是魔術(shù)發(fā)生的地方。在您的插件的PHP文件中,使用register_block_type()並提供render_callback參數(shù)。

 register_block_type(__dir__,數(shù)組(
    'render_callback'=>'my_dynamic_block_render_callback',
);

然後定義該功能。它收到塊的屬性,應返回要顯示的HTML:

函數(shù)my_dynamic_block_render_callback($屬性,$ content,$ block){
    //在這裡獲取動態(tài)數(shù)據(jù) - 例如,最近的帖子
    $ erash_posts = get_posts(array('numberposts'=> 3));

    $ output =&#39;<ul>&#39;;
    foreach($ erstan_posts as $ post){
        $ output。 =&#39;<li> <a href =“&#39;。get_permalink($ post)。&#39;&#39;>&#39;。 $ post-> post_title。 &#39;</a> </li>&#39;;
    }
    $輸出。 =&#39;</ul>&#39;;

    返回$輸出;
}

注意:您還可以通過wp_localize_script將數(shù)據(jù)從PHP傳遞到JavaScript,尤其是如果您的塊在加載後需要客戶端的交互性時。

處理屬性和用戶輸入

即使最終輸出是在服務器上構(gòu)建的,用戶仍然在編輯器中設置選項,例如要顯示多少個項目或從哪個類別中刪除。

因此,在您的edit.js文件中,使用TextControlSelectControlRangeControl等組件創(chuàng)建控件。這些更新塊屬性,然後將其傳遞到您的PHP渲染函數(shù)中。

例如:

  • 在您的block.json中添加count屬性。
  • 在編輯器中使用RangeControl來讓用戶選擇要顯示多少帖子
  • 在PHP中,讀取$attributes['count']並在查詢中使用它

這樣,一切都保持靈活性,而無需全頁重新加載或Ajax呼叫只是為了預覽更改。


一旦所有內(nèi)容連接起來,您的動態(tài)塊都可以像其他任何人一樣工作 - 只有更聰明。它根據(jù)實時數(shù)據(jù)進行更新,同時仍然與Block Editor一起播放?;旧暇褪沁@樣。一旦降低流動,還不錯。

以上是如何構(gòu)建動態(tài)的Gutenberg塊的詳細內(nèi)容。更多資訊請關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願投稿,版權(quán)歸原作者所有。本站不承擔相應的法律責任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請聯(lián)絡admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動的應用程序,用於創(chuàng)建逼真的裸體照片

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整合開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

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

如何恢復WordPress核心更新 如何恢復WordPress核心更新 Jul 02, 2025 am 12:05 AM

要回滾WordPress版本,可使用插件或手動替換核心文件,並禁用自動更新。 1.使用WPDowngrade等插件輸入目標版本號即可自動下載替換;2.手動下載舊版WordPress並通過FTP替換wp-includes、wp-admin等文件但保留wp-config.php和wp-content;3.在wp-config.php中添加代碼或使用過濾器禁用核心自動更新以防止再次升級。操作前務必備份網(wǎng)站和數(shù)據(jù)庫,確保安全可靠。長期建議保持最新版以保障安全性與功能支持。

如何在WordPress中創(chuàng)建自定義短代碼 如何在WordPress中創(chuàng)建自定義短代碼 Jul 02, 2025 am 12:21 AM

在WordPress中創(chuàng)建自定義短代碼的步驟如下:1.通過functions.php文件或自定義插件編寫PHP函數(shù);2.使用add_shortcode()將函數(shù)綁定到短代碼標籤;3.在函數(shù)中處理參數(shù)並返回輸出內(nèi)容。例如,創(chuàng)建按鈕短代碼時可定義顏色和鏈接參數(shù),實現(xiàn)靈活配置。使用時可在編輯器中插入類似[buttoncolor="red"url="https://example.com"]點擊這裡[/button]的標籤,並可通過do_shortcode()在模

如何診斷WordPress引起的高CPU使用 如何診斷WordPress引起的高CPU使用 Jul 06, 2025 am 12:08 AM

WordPress導致服務器CPU使用率飆升的主要原因包括插件問題、數(shù)據(jù)庫查詢效率低、主題代碼質(zhì)量差或流量激增。 1.首先通過top、htop或控制面板工具確認是否為WordPress引起的高負載;2.進入故障排查模式逐步啟用插件排查性能瓶頸,使用QueryMonitor分析插件執(zhí)行情況並刪除或替換低效插件;3.安裝緩存插件、清理冗餘數(shù)據(jù)、分析慢查詢?nèi)照I以優(yōu)化數(shù)據(jù)庫;4.檢查主題是否存在過度加載內(nèi)容、複雜查詢或缺乏緩存機制等問題,建議用標準主題測試對比並優(yōu)化代碼邏輯。按照上述步驟逐一排查可定位並解

如何在沒有插件的情況下優(yōu)化WordPress 如何在沒有插件的情況下優(yōu)化WordPress Jul 05, 2025 am 12:01 AM

優(yōu)化WordPress站點不依賴插件的方法包括:1.使用輕量級主題,如Astra或GeneratePress,避免功能堆砌的主題;2.手動壓縮和合併CSS、JS文件,減少HTTP請求;3.上傳前優(yōu)化圖片,使用WebP格式並控製文件大?。?.配置.htaccess啟用瀏覽器緩存,並接入CDN提升靜態(tài)資源加載速度;5.限製文章修訂版本並定期清理數(shù)據(jù)庫冗餘數(shù)據(jù)。

如何在WordPress中縮小JavaScript文件 如何在WordPress中縮小JavaScript文件 Jul 07, 2025 am 01:11 AM

MinifyingJavaScript文件可通過刪除空白、註釋和無用代碼來提升WordPress網(wǎng)站加載速度。 1.使用支持合併壓縮的緩存插件如W3TotalCache,在“Minify”選項中啟用並選擇壓縮模式;2.使用專用壓縮插件如FastVelocityMinify,提供更精細控制;3.手動壓縮JS文件並通過FTP上傳,適用於熟悉開發(fā)工具的用戶。注意部分主題或插件腳本可能與壓縮功能衝突,啟用後需徹底測試網(wǎng)站功能。

如何使用瞬態(tài)API進行緩存 如何使用瞬態(tài)API進行緩存 Jul 05, 2025 am 12:05 AM

TransientsAPI是WordPress中用於臨時存儲可自動過期數(shù)據(jù)的內(nèi)置工具,其核心函數(shù)為set_transient、get_transient和delete_transient。相比OptionsAPI,transients支持設置生存時間(TTL),適合緩存API請求結(jié)果、複雜計算數(shù)據(jù)等場景。使用時需注意key命名唯一性與命名空間、緩存“懶刪除”機制及對象緩存環(huán)境下可能不持久的問題。典型應用場景包括減少外部請求頻率、控制代碼執(zhí)行節(jié)奏和提升頁面加載性能。

如何使用對象緩存進行持續(xù)存儲 如何使用對象緩存進行持續(xù)存儲 Jul 03, 2025 am 12:23 AM

對象緩存可輔助持久存儲,適用於高訪問低更新、可容忍短暫丟失的數(shù)據(jù)。 1.適合用緩存“持久化”的數(shù)據(jù)包括用戶配置、熱門商品信息等,能從數(shù)據(jù)庫恢復但使用緩存可加速訪問。 2.選擇Redis等支持持久化的緩存後端,啟用RDB或AOF模式,並配置合理過期策略,但不能替代主數(shù)據(jù)庫。 3.設置長TTL或永不過期鍵,採用清晰鍵名結(jié)構(gòu)如user:1001:profile,修改數(shù)據(jù)時同步更新緩存。 4.可結(jié)合本地與分佈式緩存,本地存小數(shù)據(jù)、Redis存大數(shù)據(jù)並用於重啟後恢復,同時注意一致性與資源佔用問題。

如何以編程方式防止評論垃圾郵件 如何以編程方式防止評論垃圾郵件 Jul 08, 2025 am 12:04 AM

防止評論垃圾信息最有效的方式是通過程序化手段自動識別並攔截。 1.使用驗證碼機制(如GooglereCAPTCHA或hCaptcha)可有效區(qū)分人類與機器人,尤其適合公眾網(wǎng)站;2.設置隱藏字段(Honeypot技術(shù)),利用機器人自動填寫特性識別垃圾評論,不影響用戶體驗;3.檢查評論內(nèi)容關(guān)鍵詞黑名單,通過敏感詞匹配過濾垃圾信息,需注意避免誤判;4.判斷評論頻率與來源IP,限制單位時間內(nèi)的提交次數(shù)並建立黑名單;5.使用第三方反垃圾服務(如Akismet、Cloudflare)提升識別準確性??筛鶕?jù)網(wǎng)站

See all articles