Plugin info

Total downloads: 3,726
Active installs: 20
Total reviews: 2
Average rating: 5
Support threads opened: 0
Support threads resolved: 0 (0%)
Available in: 1 language(s)
Contributors: 1
Last updated: 2/22/2015 (3964 days ago)
Added to WordPress: 5/30/2013 (12 years old)
Minimum WordPress version: 4.1
Tested up to WordPress version: 4.1.42
Minimum PHP version: f

Maintenance & Compatibility

Maintenance score

Possibly abandoned • Last updated 3964 days ago • 2 reviews

22/100

Is TwigPress abandoned?

Possibly abandoned (last update 3964 days ago).

Compatibility

Requires WordPress: 4.1
Tested up to: 4.1.42
Requires PHP: f

Similar & Alternatives

Explore plugins with similar tags, and compare key metrics like downloads, ratings, updates, support, and WP/PHP compatibility.

Timber
Rating 4.9/5 (71 reviews)Active installs 30,000
Editor for Timber
Rating 0.0/5 (0 reviews)Active installs 50
Timber Debug Bar
Rating 0.0/5 (0 reviews)Active installs 600
Clear cache for Timber
Rating 0.0/5 (0 reviews)Active installs 500
ACF Timber Integration
Rating 5.0/5 (1 reviews)Active installs 300
Dataverse Integration
Rating 5.0/5 (5 reviews)Active installs 90

Description

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.

Installation

  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

Frequently Asked Questions

No FAQ available

Review feed

No reviews available

Screenshots

No screenshots available

Changelog

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