Awesome
###This plugin is deprecated in favor of ekandreas/bladerunner
WordPress Blade
Brings Laravel's great template engine, Blade, to WordPress. Just install and start using blade in your theme.
Blade is the template engine for Laravel, a very popular php framework, developed by Taylor Otwell. This plugin brings the same template engine to WordPress. Using a template engine will result in much cleaner template files and quicker development. Normal php can still be used in the template files. The plugin also adds a WordPress specific snippet to blade. Check out the examples for more info.
WordPress Repository: Blade
Blade Tutorial on YouTube: Video Tutorial
Echo/Print
// Normal
<?php echo $foo; ?>
// Blade
{{ $foo }}
Post Data
// Normal
<?php the_title(); ?>
// Blade
{{ the_title() }}
If Statements
Normal
<?php if( has_post_thumbnail() ) : ?>
<?php the_post_thumbnail() ?>
<?php else: ?>
<img src="<?php bloginfo( 'stylesheet_directory' ) ?>/images/thumbnail-default.jpg" />
<?php endif; ?>
Blade
@if( has_post_thumbnail() )
{{ the_post_thumbnail() }}
@else
<img src="{{ bloginfo( 'stylesheet_directory' ) }}/images/thumbnail-default.jpg" />
@endif
WordPress Loop
Normal
<ul>
<?php $query = new WP_Query( array( 'post_type' => 'post' ) ); ?>
<?php if ( $query->have_posts() ) : ?>
<?php while ( $query->have_posts() ) : $query->the_post(); ?>
<li><a href="<?php the_permalink() ?>"> <?php the_title() ?> </a></li>
<?php endwhile; ?>
<?php else : ?>
<li><?php _e( 'Sorry, no posts matched your criteria.' ) ?></li>
<?php endif; wp_reset_postdata(); ?>
</ul>
Blade
<ul>
@wpquery( array( 'post_type' => 'post' ) )
<li><a href="{{ the_permalink() }}">{{ the_title() }}</a></li>
@wpempty
<li>{{ __( 'Sorry, no posts matched your criteria.' ) }}</li>
@wpend
</ul>
Advanced Custom Fields
Normal
<ul>
<?php if( get_field( 'images' ) ): ?>
<?php while( has_sub_field( 'images' ) ): ?>
<li><img src="<?php the_sub_field( 'image' ) ?>" /></li>
<?php endwhile; ?>
<?php endif; ?>
</ul>
Blade
<ul>
@acfrepeater('images')
<li>{{ get_sub_field( 'image' ) }}</li>
@acfend
</ul>
Including Files
Files included with functions, e.g. the_header()
, will not be compiled by Blade, however the php code in the file is still executed. To include a file with blade use:
@include( 'header' )
Note that you should not type “.php”.
Layouts
master.php
<html>
<div class="content">
@yield( 'content' )
</div>
</html>
page.php
@layout( 'master' )
@section( 'content' )
<p>Lorem ipsum</p>
@endsection
Documentation
Check out the complete Blade Documentation for more examples.
Contributing
Pull requests are highly appreciated. Feel free to report a bug, typo, enhancement or a feature you want to add to the plugin.