mikaelmattsson / blade

Blade for Wordpress
GNU General Public License v2.0
151 stars 21 forks source link

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="https://github.com/mikaelmattsson/blade/raw/master/<?php bloginfo( 'stylesheet_directory' ) ?>/images/thumbnail-default.jpg" />
<?php endif; ?>

Blade

@if( has_post_thumbnail() )
    {{ the_post_thumbnail() }}
@else
    <img src="https://github.com/mikaelmattsson/blade/raw/master/{{ 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="https://github.com/mikaelmattsson/blade/blob/master/<?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="https://github.com/mikaelmattsson/blade/blob/master/{{ 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="https://github.com/mikaelmattsson/blade/raw/master/<?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.