關於WordPress 的未來已經有很多文章,許多人認為它缺乏模板語言,特別是當Django、Ruby on Rails、Node.js、Laravel 甚至Drupal 等平台都擁有模板語言時。像是「WordPress 為近 25% 的網路提供支援」這樣的事實讓人很難質疑其目前基於 PHP 的模板系統。但由於程式碼中的模組化仍然缺失,人們可以問核心何時會有模板引擎。
好消息就在這裡! Twig 模板引擎和一個名為 Timber 的外掛可以幫助我們在 WordPress 中編寫超級乾淨和模組化的程式碼。在本系列中,我們將討論它的實作以及與 WordPress 的整合。我將從 Twig 是什麼以及為什麼需要它的基礎知識開始,在接下來的三篇文章中,我將解釋透過 Timber 與 WordPress 整合的不同類型的 Twig 模板。
Twig 是一個靈活、快速且安全的 PHP 模板引擎。 Twig 由 Symfony 框架的創建者 Fabien Potencier 為您帶來,被認為是功能豐富、廣泛、快速且高效。
通常,當您在 WordPress 中編碼時,您會將 PHP 區塊與 HTML 混合在一起(這就是我們所說的意大利麵條程式碼)。這不屬於超乾淨的標記。為了採用模組化和 Doing it Right™ 方法,需要將 View
與 ##Data 分開。使用 Twig,您可以將視圖層與應用程式的其餘部分分開。 Twig 採用模型-視圖-控制器 (MVC) 模式,有助於維護乾淨的程式碼。
功能豐富
快速有效率
設計者和開發者友善
#Twig 適合設計師和開發人員的要求。即使您不是程式碼迷,使用 Twig 也很簡單,而且基於元件編寫模組化模板感覺很正確。其語法易於理解,並且避免在模板檔案中實現動態 PHP 操作。總而言之,它非常現代,並且適用於所有最新的編碼標準。使用 Twig 處理時,輸出轉義概念非常全面。
讓我們從一個簡單的例子開始。
在常規 PHP 中,您會得到以下輸出:
<?php echo $foo; // $foo is any random variable ?> <?php echo htmlspecialchars( $foo, ENT_QUOTES, 'UTF-8' ) ?>在 Twig 中,事情變得更加簡單,即上面的程式碼被壓縮為:
{{ foo }} {{ foo|escape }} {{ foo|e }} {# shortcut to escape a variable #}輸出轉義在 Twig 中就是這麼簡單。只需添加雙大括號,輸入變數的名稱,您就會得到輸出。在旁邊放一個有 e 的管道,我們就開始轉義了。本系列接下來的三篇文章將詳細介紹這一點。
安全性
沙箱模式可以智慧地監控整個程式碼並過濾出最佳的結果。這意味著可以輕鬆、安全地實施使用者生成的模板。沙箱環境只能針對特定模板在全域或本地啟用,如下所示:
{{ include( 'post.html', sandboxed = true ) }}如果出現任何語法錯誤,Twig 會產生一條訊息來偵錯您的文件,其中包含文件名稱和有問題程式碼的行號等詳細資訊。
靈活
詞法分析器和解析器,開發人員可以透過它們定義自訂標籤、過濾器、函數等。
其他Twig 是 Drupal 8 的新模板語言,這是我充滿信心地使用這個模板引擎的主要動機。 XWP 的優秀人員,尤其是 Weston Ruter,正在製定一項提案,使 Twig 符合 WordPress.com VIP 標準。
Timber:將 Twig 與 WordPress 整合
為了實現 Twig 和 WordPress 之間的最佳集成,人們做出了不同的努力,其中一項勇敢的嘗試是由一家名為 Upstatement 的網絡機構創建的 Timber。它使用 Twig 模板引擎,這使得在 WordPress 中編寫模組化和乾淨的程式碼成為可能。
Timber 和 Twig 可以幫助您建立快速且模組化的 WordPress 主題。這樣您就可以將 HTML 程式碼與普通 PHP 檔案分開,從而確保更永續的程式碼模式。將 HTML 和 PHP 分開的概念使得 PHP 檔案可以嚴格專注於提供 data
和邏輯,而 HTML 檔案(Twig 檔案)則專注於 view
Web 應用程式層。
總的來說,Timber 執行三個主要任務:
我認為他們的使命宣言說明了一切:
Timber 是一款適合希望透過直覺、一致且完全可存取的介面將 HTML 轉換為高品質 WordPress 主題的開發人員的工具。
對於常規 WordPress 主題,所有 PHP 和 HTML 程式碼片段都整合在同一個 PHP 模板檔案中並進行修改。然而,使用 Timber,我們將模板文件拆分為兩個不同的資料文件:PHP 文件和視圖/模板文件,即 Twig 文件。
因此,第一個檔案的副檔名為 .php
,第二個檔案的副檔名為 .twig
。因此,如果您要為 single.php
建立模板文件,您的文件將命名為 single.php
和 single.twig
。
前者是整理資料的文件,後者是使用HTML中的資料的範本。這樣您就可以以模組化的方式在 WordPress 主題中加入動態操作。
讓我們總結一下:
Timber 處理 PHP 和 HTML (Twig) 檔案中的 WordPress 主題模板檔案。這樣您就可以將邏輯與顯示分開。它為您提供了構建、設計和顯示主題的新方法。
Twig 有很多值得喜愛的地方。本文只是介紹在 WordPress 中使用模板引擎的優點。模組化程式碼是更好的程式碼並且易於維護。現在是開發人員進行工作流程轉變的時候了,我相信 Twig 可以幫助他們做到這一點。
在接下來的文章中,我將展示使用 Twig 範本檔案的實際實作。我們將透過程式碼範例研究如何實作 Twig 來渲染 WP 圖像、評論和選單。在此之前,如果您發現任何疑問,請隨時詢問。不要忘記在 Twitter 上聯絡我們。
以上是Twig 簡介:快速啟動 WordPress 開發的完美工具的詳細內容。更多資訊請關注PHP中文網其他相關文章!