Title: TwigPress
Author: MikeShaw217
Published: <strong>2013 年 5 月 30 日</strong>
Last modified: 2015 年 2 月 22 日

---

搜索插件

**该插件尚未通过WordPress的最新3个主要版本进行测试**。 当与较新版本的WordPress一起
使用时，可能不再受到维护或支持，并且可能会存在兼容性问题。

![](https://s.w.org/plugins/geopattern-icon/twigpress.svg)

# TwigPress

 作者：[MikeShaw217](https://profiles.wordpress.org/mikeshaw217/)

[下载](https://downloads.wordpress.org/plugin/twigpress.1.1.2.zip)

 * [详情](https://cn.wordpress.org/plugins/twigpress/#description)
 * [评价](https://cn.wordpress.org/plugins/twigpress/#reviews)
 *  [安装](https://cn.wordpress.org/plugins/twigpress/#installation)
 * [开发进展](https://cn.wordpress.org/plugins/twigpress/#developers)

 [支持](https://wordpress.org/support/plugin/twigpress/)

## 描述

This plugin provides a simple way for you to use the [Twig templating engine](http://twig.sensiolabs.org/)
with [WordPress](https://wordpress.org/) 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](http://twig.sensiolabs.org/) 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](http://twig.sensiolabs.org/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.

## 安装

 1. Download the plugin from WordPress, either directly or through the plugins admin
    screen
     – If you download the files directly, upload them to your `/wp-content/
    plugins/` directory
 2. Place the Twig files in your `wp-content` directory, `Autoloader.php` should reside
    at `wp-content/Twig/Autoloader.php`
 3. Create a ‘twigs’ directory inside your theme folder, place your Twig templates 
    in here
 4. Activate the plugin through the ‘Plugins’ menu in WordPress
 5. Use the `twigpress_render_twig_template()` function in your PHP files to render
    templates

## 评价

![](https://secure.gravatar.com/avatar/0cea329cdd2a5d5da5fb13ecf609e8e7119050fa4fcec10b8771b328bee710f9?
s=60&d=retro&r=g)

### 󠀁[Great idea to implement Twig to WP!](https://wordpress.org/support/topic/great-idea-to-implement-twig-to-wp/)󠁿

 [linasslepikas](https://profiles.wordpress.org/linasslepikas/) 2016 年 9 月 3 日
1 回复

Great idea to implement Twig to WP!

 [ 阅读所有2条评价 ](https://wordpress.org/support/plugin/twigpress/reviews/)

## 贡献者及开发者

「TwigPress」是开源软件。 以下人员对此插件做出了贡献。

贡献者

 *   [ MikeShaw217 ](https://profiles.wordpress.org/mikeshaw217/)

[帮助将「TwigPress」翻译成简体中文。](https://translate.wordpress.org/projects/wp-plugins/twigpress)

### 对开发感兴趣吗?

您可以[浏览代码](https://plugins.trac.wordpress.org/browser/twigpress/)，查看[SVN仓库](https://plugins.svn.wordpress.org/twigpress/)，
或通过[RSS](https://plugins.trac.wordpress.org/log/twigpress/?limit=100&mode=stop_on_copy&format=rss)
订阅[开发日志](https://plugins.trac.wordpress.org/log/twigpress/)。

## 更新日志

#### 1.1.2

 * [Added] If WP_DEBUG is enabled, turn on debugging in the Twig environment

#### 1.1.1

 * Strict variables are no longer enforced

#### 1.1.0

 * [Added] TwigPress now sets up a template cache in your theme folder
 * [Added] TwigPress sets the Twig core to recompile templates when the source code
   changes
 * [Added] TwigPress sets the Twig core to enforce strict variables, which stops
   silent failure

#### 1.0.1

 * Minor changes to codebase

#### 1.0.0

 * Initial release

## 额外信息

 *  版本 **1.1.2**
 *  最后更新：**11 年前**
 *  活跃安装数量 **20+**
 *  WordPress 版本 ** 4.1 或更高版本 **
 *  已测试的最高版本为 **4.1.42**
 *  语言
 * [English (US)](https://wordpress.org/plugins/twigpress/)
 * 标签
 * [templates](https://cn.wordpress.org/plugins/tags/templates/)[themes](https://cn.wordpress.org/plugins/tags/themes/)
   [twig](https://cn.wordpress.org/plugins/tags/twig/)
 *  [高级视图](https://cn.wordpress.org/plugins/twigpress/advanced/)

## 评级

 5 星（最高 5 星）。

 *  [  2 条 5 星评价     ](https://wordpress.org/support/plugin/twigpress/reviews/?filter=5)
 *  [  0 条 4 星评价     ](https://wordpress.org/support/plugin/twigpress/reviews/?filter=4)
 *  [  0 条 3 星评价     ](https://wordpress.org/support/plugin/twigpress/reviews/?filter=3)
 *  [  0 条 2 星评价     ](https://wordpress.org/support/plugin/twigpress/reviews/?filter=2)
 *  [  0 条 1 星评价     ](https://wordpress.org/support/plugin/twigpress/reviews/?filter=1)

[Your review](https://wordpress.org/support/plugin/twigpress/reviews/#new-post)

[查看全部评论](https://wordpress.org/support/plugin/twigpress/reviews/)

## 贡献者

 *   [ MikeShaw217 ](https://profiles.wordpress.org/mikeshaw217/)

## 支持

有话要说吗？是否需要帮助？

 [查看支持论坛](https://wordpress.org/support/plugin/twigpress/)