Skellie is the easiest way of coding a wordpress theme without sacrificing simplicity for cleanliness or breaking the way wordpress works.
- Partials like Zend Framework with the flexibility of get_template_part (without its drawbacks).
- Views, layouts and templates: All objects and configurable.
- Can be enabled per template or by default for all templates.
- Clean structure.
- Compatible with plugins.
Just fork/clone the repository into your themes folder and enable the theme.
- Copy the directories: layouts, library and partials into your theme's main dir.
- Put the code from functions.php into your theme's functions.php file.
- If you want to refactor your templates one by one pass true to requireCherryPicking() so that only templates with explicitely-set layouts will run through Skellie.
Partials can be used instead of get_template_part and also give the ability to pass variables to the partials. The partial can access the variables you pass it using $this.
From within a template, layout or another partial (even itself):
<?php $params = array('divClass' => 'grid_9'); echo $this->partial('preview', 'whatever', $params);
If partials/preview/whatever.php is found it will be called, otherwise the default is partials/preview.php if it exists or partials/preview/default.php The reason for this is that if you don't have many partials of a certain type you shouldn't have to create a directory for it.
Within the partial you can do:
<div class="<?php echo $this->divClass; ?>"> Hola mundo </div>
Any template can now pick a layout. A layout is a wrapper around templates in order to avoid duplicate wrapping code. Layouts will render the template in a placeholder within them. The default layout is located in layouts/default.php (duh) Layouts can be chosen and configured from the template as in the example below:
<?php /** * Template name: Template of doom * @layout singleColumn * @layout[var] value */
In this example layouts/singleColumn.php will be rendered instead (if it is found) and $this->var will be 'value' within the layout so you can use it as you wish.
A layout is like a regular wordpress template but contains a placeholder where the content from the template is actually rendered into. Rendering that content occurs with:
<?php echo $this->content(); ?>
.-. (e.e) (m) .-="=-. W // =T= \\,/ () ==|== () \ =V= M(oVo) // \\ // \\ () () \\ || \' '| ==" "==