主題作者可以將數據傳遞到WordPress 5.5中的模板文件

主題作者可以在WordPress 5-5中將數據傳遞到模板文件中主題作者可以將數據傳遞到WordPress 5.5中的模板文件中

主題開發人員終於可以歡喜了。 現在,第一次可以通過各種核心模板載入功能將數據傳遞到模板。 恩里科·索西內利(Enrico Sorcinelli) 宣布變更 在上周五的Make Core博客上。

功能最初提出 由斯科特·金斯利·克拉克(Scott Kingsley Clark)在2012年創作。多年來,這張票已收到十幾個補丁。 它在閉包中倖存下來,並爭論了為什麼該功能不應該成為核心。 Sorcinelli是最近幾年保持票務活躍的主要司機。

WordPress開發人員已經在5.5發布周期中清理了一些舊的但有用的功能請求。 幾周前,一張11歲的門票允許用戶 通過ZIP文件更新主題和插件 削減了。 核心開發人員甚至關閉了一張9年的票證,該票證與 Internet Explorer 6駭客 -進展。 但是,對於主題作者來說,最重要的附加功能之一是控制將數據從一個模板傳遞到另一個模板。

通常,在PHP中,變數可以在文件之間傳遞,因為它們保持在同一範圍內。 但是,如果通過從函數內部包含文件來將文件包含排除在該範圍之外,則情況並非如此。 範圍則限於該功能。 這就是模板系統在WordPress中的工作方式。 這不一定是一件壞事。 但是,這意味著主題開發人員沒有將數據從一個模板傳遞到下一個模板的內置方法。

想像一下在一個模板中創建一個變數,但是需要在一個子模板中訪問相同的變數。 不乏實現此目的的方法,但許多方法並不完善。

「多年來,希望將數據傳遞到模板文件的主題開發人員不得不使用不太理想的解決方法,」 Sorcinelli在公告中寫道。 最糟糕的解決方案通常涉及創建全局變數。 其他人在WordPress的現有系統之上創建了自定義模板載入功能。 無論哪種方法都理想,所有方法的問題都是沒有標準。 每個主題都需要構建自己的解決方案,而觸及前端的插件通常會有競爭的解決方案。

現在,所有WordPress模板載入功能都支持$ args的附加參數,該參數允許主題作者將數據的關聯數組傳遞給載入的模板。 支持此新參數的函數是:

  • get_header()
  • get_footer()
  • get_sidebar()
  • get_template_part()
  • locate_template()
  • load_template()

與功能關聯的所有掛鉤也將傳遞數據。

自WordPress 5.2起,get_search_form()函數支持類似的參數。 實際上,它的工作原理幾乎相同,但是該函數具有幾個默認值。

具有將數據傳遞到模板的標準方法的另一個好處是,將來可以在該功能上構建該功能。 例如,WordPress最終可以提供一個過濾數據的掛鉤,可以與子主題配合使用。

WordPress模板系統仍然缺乏更現代的框架的健壯性,但是這種簡單的更改將允許各種應用程序。

仍然存在一個問題:此功能的推出是否為時已晚? 隨著WordPress有望改進整個主題系統以與即將到來的全站點編輯功能集成,此功能僅在接下來的幾個月中有用嗎?

即使大多數主題開發人員在接下來的一年中不會立即跳入基於塊的主題潮流,該功能也可能會派上用場,直到他們這樣做為止。 也許它將在當前主題範式之外還具有一些有用性。

開發人員仍不清楚未來幾年帶塊主題的外觀。 在某些情況下,下一個系統中仍然需要傳遞動態數據。 即使不是這樣,距離現有主題開發社區大規模採用基於塊的主題也可能需要很長時間。 同時,許多人將能夠使用內部解決方案並使用標準功能。

像這樣:

喜歡載入中……

資源

相關文章