內容簡介
本外掛可為你提供使用Twig模板引擎與WordPress主題的簡便方法。WordPress主題的一個問題是創建混合了PHP和HTML的模板非常容易。這對工作不好,也沒有關注分離。Twig模板引擎是一個優秀的引擎,可以將取得和操作數據和渲染數據分離出來。你可以像以前一樣建立你的主題,只需渲染模板而不是在頁面結構中使用PHP。
安裝部分提供了使用此外掛與你的主題的步驟。其他注釋中有一個簡單的參考,列出了不同的函數/過濾器及其用途。
對於Twig,我可以提供的最佳資源是Twig文件,它有極好的文檔。
功能和過濾器:
功能:
- `twigpress_render_twig_template($vals = array(), $template = false, $echo = true)`:調用此功能使用傳遞給`$vals`的值來渲染`$template`。你還可以選擇要渲染的特定模板,以及是否要回傳模板或僅簡單地返回它。不需要明確設置`$template`名稱。如果使用默認值,外掛將尋找與正在渲染的PHP文件同名的模板(使用`.twig`擴展名)。例如,如果渲染的是`front-page.php`,該外掛將嘗試尋找`front-page.twig`。如果你希望僅返回渲染後的模板,將`$echo`設置為`false`。
- `twigpress_get_the_content()`:使用此功能獲取你正在處理的文章內容。如果使用`get_the_content`,WordPress會返回未格式化的內容,也不應用`the_content`過濾器。`twigpress_get_the_content()`會處理這兩個任務。
過濾器:
- `twigpress_twig_site_variables`:在外掛實例化時應用此過濾器,在`init`操作上,允許你修改在創建Twig環境時傳遞的變數數組。因此,這些變數對所有模板都可用。該過濾器最適合用於網站範圍信息。對於特定於文章的變數,請使用`twigpress_twig_post_template_vars`過濾器。
- `twigpress_twig_global_functions`:有時你需要在模板中使用PHP函數,並且沒有辦法捕獲它們的內容以在渲染模板時傳遞。此過濾器使你可以訪問添加到Twig環境中的功能數組,從而可以在模板中調用它們。
外掛標籤
開發者團隊
原文外掛簡介
This plugin provides a simple way for you to use the Twig templating engine with WordPress themes. A problem with WordPress themes is that it is very easy to create templates that are a mess of PHP and HTML. This isn’t good for working with neither does it provide a separation of concerns. The Twig templating engine is a great engine that allows you to separate out getting & manipulating your data and rendering it out. You create your themes in the same way as before, only you render a template instead of using PHP within your page structure.
The Installation section provides the steps to using this plugin with your theme.
In the Other Notes section, there is an easy reference for the different functions/filters and what they can be used for.
For Twig, the Twig documentation is the best resource I can offer. It is extremely well documented.
Functions and Filters
Functions
twigpress_render_twig_template($vals = array(), $template = false, $echo = true)
Calling this function renders a $template with the values passed in $vals. You can also choose a specific template to render and whether you would like to echo the template or simply return it.
There is no need to explicitly set the $template name. If this is left to the default, the plugin will look for a template with the same name as the PHP file being rendered (with a ‘.twig’ extension). For example, if front-page.php is being rendered the plugin will attempt to find front-page.twig.
If you wish to simply return the rendered template, set $echo to false.
twigpress_get_the_content()
Use this function to get the content for the post you are dealing with. If you use get_the_content, WordPress returns the unformatted content and the the_content filter is not applied. twigpress_get_the_content() takes care of both of these tasks.
Filters
twigpress_twig_site_variables
This filter is applied when the plugin is instantiated, on the ‘init’ action, and allows you to alter the array of variables that are passed to the Twig environment when it is first created. As such, these variables are available to all templates. This filter is best suited for site-wide information. For post-specific variables, use the twigpress_twig_post_template_vars filter.
Defaults:
'site' => array(
'lang_attributes' => get_bloginfo('language'),
'charset' => get_bloginfo('charset'),
'url' => get_bloginfo('url'),
'stylesheet_directory' => get_stylesheet_directory_uri(),
'title' => get_bloginfo('name'),
'description' => get_bloginfo('description')
)
In templates these would be accessible through, for example, {{ site.stylesheet_directory }}.
twigpress_twig_global_functions
There will be times when you need to use PHP functions in your templates, and there is no way to capture their content to pass to the template when it is rendered. This filter gives you access to the array of functions that are added to the Twig environment, making them available for calling in your templates.
Defaults: wp_head(), wp_footer(), wp_title(), body_class(), wp_nav_menu()
twigpress_twig_post_template_vars
This filter is applied to your passed array of $vars immediately before the template is rendered. This filter is ideal for when you have a set of default variables you wish to include in every template, but are related to posts not the entire site.
