26
WordPress-Themes mit Twig entwickeln Walter Ebert @wltrd WordCamp Berlin 14. November 2015 https://www.flickr.com/photos/37872410@N00/4653843463/ https://www.flickr.com/photos/37872410@N00/4653843463/

WordPress-Themes mit Twig entwickeln - Walter Ebert · 2015-11-15 · WordPress-Themes mit Twig entwickeln Walter Ebert @wltrd WordCamp Berlin 14. November 2015 N00/4653843463

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: WordPress-Themes mit Twig entwickeln - Walter Ebert · 2015-11-15 · WordPress-Themes mit Twig entwickeln Walter Ebert @wltrd WordCamp Berlin 14. November 2015 N00/4653843463

WordPress-Themes mit Twig entwickeln

Walter Ebert @wltrd

WordCamp Berlin 14. November 2015

https://www.flickr.com/photos/37872410@N00/4653843463/https://www.flickr.com/photos/37872410@N00/4653843463/

Page 2: WordPress-Themes mit Twig entwickeln - Walter Ebert · 2015-11-15 · WordPress-Themes mit Twig entwickeln Walter Ebert @wltrd WordCamp Berlin 14. November 2015 N00/4653843463

Walter Ebert

@wltrd

walterebert.de

slideshare.net/walterebert

Page 3: WordPress-Themes mit Twig entwickeln - Walter Ebert · 2015-11-15 · WordPress-Themes mit Twig entwickeln Walter Ebert @wltrd WordCamp Berlin 14. November 2015 N00/4653843463

http://twig.sensiolabs.org/http://twig.sensiolabs.org/

Page 4: WordPress-Themes mit Twig entwickeln - Walter Ebert · 2015-11-15 · WordPress-Themes mit Twig entwickeln Walter Ebert @wltrd WordCamp Berlin 14. November 2015 N00/4653843463

Vorteile von Twig

• Trennung von HTML und PHP

• Einfacher für Anfänger

• Mehr Sicherheit

• Vererbung von Templates

• Erfahrung aus andere PHP-Projekte nutzen

Page 6: WordPress-Themes mit Twig entwickeln - Walter Ebert · 2015-11-15 · WordPress-Themes mit Twig entwickeln Walter Ebert @wltrd WordCamp Berlin 14. November 2015 N00/4653843463

Projekte die Twig nutzen• Symfony

• Drupal 8

• EZ Publish

• Bolt

• Grav

• Craft

• Slim

• Sculpin

• (Laravel)

• ...

Drupal 8 Release Party19. November 2015http://drupalberlin.de/http://www.drupical.com/#Celebr8D8

Page 7: WordPress-Themes mit Twig entwickeln - Walter Ebert · 2015-11-15 · WordPress-Themes mit Twig entwickeln Walter Ebert @wltrd WordCamp Berlin 14. November 2015 N00/4653843463

Nachteile von Twig

• Extra Template-Sprache

• Code ist (etwas) langsamer

Page 8: WordPress-Themes mit Twig entwickeln - Walter Ebert · 2015-11-15 · WordPress-Themes mit Twig entwickeln Walter Ebert @wltrd WordCamp Berlin 14. November 2015 N00/4653843463

https://wordpress.org/plugins/timber-library/https://wordpress.org/plugins/timber-library/

Page 9: WordPress-Themes mit Twig entwickeln - Walter Ebert · 2015-11-15 · WordPress-Themes mit Twig entwickeln Walter Ebert @wltrd WordCamp Berlin 14. November 2015 N00/4653843463

https://github.com/jarednova/timber/wikihttps://github.com/jarednova/timber/wiki

Page 10: WordPress-Themes mit Twig entwickeln - Walter Ebert · 2015-11-15 · WordPress-Themes mit Twig entwickeln Walter Ebert @wltrd WordCamp Berlin 14. November 2015 N00/4653843463

Twig PHP-Erweiterung

git clone https://github.com/twigphp/Twig.git

cd Twig/ext/twig

phpize

./configure

make

sudo make install

php.ini

[twig]

extension=twig.so

Page 11: WordPress-Themes mit Twig entwickeln - Walter Ebert · 2015-11-15 · WordPress-Themes mit Twig entwickeln Walter Ebert @wltrd WordCamp Berlin 14. November 2015 N00/4653843463

Twig-Syntax

{{ }} // Ausgabe

{% %} // Logik

{# #} // Kommentar

Page 12: WordPress-Themes mit Twig entwickeln - Walter Ebert · 2015-11-15 · WordPress-Themes mit Twig entwickeln Walter Ebert @wltrd WordCamp Berlin 14. November 2015 N00/4653843463

single.twig

{# Dies ist ein Beitrag #}{% extends "base.twig" %}{% block content %}<h1 class="site-title">{{ foo }}</h1><h2>{{ post.title|upper }}</h2>{% if post.thumbnail %} <img src="{{ post.thumbnail.src }}" />{% endif %}<div class="content">{{ post.content }}</div>{% endblock %}

Page 13: WordPress-Themes mit Twig entwickeln - Walter Ebert · 2015-11-15 · WordPress-Themes mit Twig entwickeln Walter Ebert @wltrd WordCamp Berlin 14. November 2015 N00/4653843463

single.twig

{# Dies ist ein Beitrag #}{% extends "base.twig" %}{% block content %}<h1 class="site-title">{{ foo }}</h1><h2>{{ post.title|upper }}</h2>{% if post.thumbnail %} <img src="{{ post.thumbnail.src }}" />{% endif %}<div class="content">{{ post.content }}</div>{% endblock %}

Page 14: WordPress-Themes mit Twig entwickeln - Walter Ebert · 2015-11-15 · WordPress-Themes mit Twig entwickeln Walter Ebert @wltrd WordCamp Berlin 14. November 2015 N00/4653843463

single.twig

{# Dies ist ein Beitrag #}{% extends "base.twig" %}{% block content %}<h1 class="site-title">{{ foo }}</h1><h2>{{ post.title|upper }}</h2>{% if post.thumbnail %} <img src="{{ post.thumbnail.src }}" />{% endif %}<div class="content">{{ post.content }}</div>{% endblock %}

Page 15: WordPress-Themes mit Twig entwickeln - Walter Ebert · 2015-11-15 · WordPress-Themes mit Twig entwickeln Walter Ebert @wltrd WordCamp Berlin 14. November 2015 N00/4653843463

single.twig

{# Dies ist ein Beitrag #}{% extends "base.twig" %}{% block content %}<h1 class="site-title">{{ foo }}</h1><h2>{{ post.title|upper }}</h2>{% if post.thumbnail %} <img src="{{ post.thumbnail.src }}" />{% endif %}<div class="content">{{ post.content }}</div>{% endblock %}

Page 16: WordPress-Themes mit Twig entwickeln - Walter Ebert · 2015-11-15 · WordPress-Themes mit Twig entwickeln Walter Ebert @wltrd WordCamp Berlin 14. November 2015 N00/4653843463

single.php

<?php

$context = Timber::get_context();

$context['foo'] = 'Bar!';

$context['post'] = new TimberPost();

Timber::render( 'single.twig', $context );

Page 17: WordPress-Themes mit Twig entwickeln - Walter Ebert · 2015-11-15 · WordPress-Themes mit Twig entwickeln Walter Ebert @wltrd WordCamp Berlin 14. November 2015 N00/4653843463

Posts// Posts

$context['posts'] = Timber::get_posts();

// WP_Query

$args = [

'post_type' => 'custom_post_type',

'post_status' => 'publish',

'posts_per_page' => 5,

];

$context['posts'] = Timber::get_posts( $args );

Page 18: WordPress-Themes mit Twig entwickeln - Walter Ebert · 2015-11-15 · WordPress-Themes mit Twig entwickeln Walter Ebert @wltrd WordCamp Berlin 14. November 2015 N00/4653843463

Posts{% for post in posts %} <article id="post-{{ post.ID }}"> <h1> <a href="{{ post.link }}">{{ post.title }}</a> </h1> <div class="date"> {{ post.date }} </div> <div class="excerpt"> {{ post.content|excerpt(55) }} </div> </article>{% endfor %}

Page 19: WordPress-Themes mit Twig entwickeln - Walter Ebert · 2015-11-15 · WordPress-Themes mit Twig entwickeln Walter Ebert @wltrd WordCamp Berlin 14. November 2015 N00/4653843463

Übersetzungen

<?php _e( 'Sorry, no posts.', 'meins' ); ?>

->

{{ __('Sorry, no posts.', 'meins') }}

Page 20: WordPress-Themes mit Twig entwickeln - Walter Ebert · 2015-11-15 · WordPress-Themes mit Twig entwickeln Walter Ebert @wltrd WordCamp Berlin 14. November 2015 N00/4653843463

WordPress-Funktionen

<?php get_search_form(); ?>

->

{{ fn('get_search_form') }}

Page 21: WordPress-Themes mit Twig entwickeln - Walter Ebert · 2015-11-15 · WordPress-Themes mit Twig entwickeln Walter Ebert @wltrd WordCamp Berlin 14. November 2015 N00/4653843463

Advanced Custom Fields<h3>{{ post.title }}</h3>

<div class="intro-text">

{{ post.get_field('meins_intro_text') }}

</div>

{% for item in post.get_field('meins_repeater') %}

<article class="item">

<h1>{{ item.name }}</h1>

{{ item.info }}

</article>

{% endfor %}

https://wordpress.org/plugins/advanced-custom-fields/

Page 22: WordPress-Themes mit Twig entwickeln - Walter Ebert · 2015-11-15 · WordPress-Themes mit Twig entwickeln Walter Ebert @wltrd WordCamp Berlin 14. November 2015 N00/4653843463

Advanced Custom Fields Pro<h3>{{ post.title }}</h3>

<div class="intro-text">

{{ post.get_field('meins_intro_text') }}

</div>

{% for item in post.get_field('meins_repeater') %}

<article class="item">

<h1>{{ item.name }}</h1>

{{ item.info }}

</article>

{% endfor %}

http://www.advancedcustomfields.com/

Page 23: WordPress-Themes mit Twig entwickeln - Walter Ebert · 2015-11-15 · WordPress-Themes mit Twig entwickeln Walter Ebert @wltrd WordCamp Berlin 14. November 2015 N00/4653843463

http://notlaura.com/the-twig-for-timber-cheatsheet/http://notlaura.com/the-twig-for-timber-cheatsheet/

Page 24: WordPress-Themes mit Twig entwickeln - Walter Ebert · 2015-11-15 · WordPress-Themes mit Twig entwickeln Walter Ebert @wltrd WordCamp Berlin 14. November 2015 N00/4653843463

https://github.com/upstatement/timber-starter-themehttps://github.com/upstatement/timber-starter-theme

Page 25: WordPress-Themes mit Twig entwickeln - Walter Ebert · 2015-11-15 · WordPress-Themes mit Twig entwickeln Walter Ebert @wltrd WordCamp Berlin 14. November 2015 N00/4653843463

Praxisbeispiele

https://github.com/jarednova/timber/wiki/Showcase

https://github.com/laras126/karenmcgrane

https://github.com/laras126/mtnmeister-theme

https://github.com/laras126/dijifi-theme

https://github.com/search?utf8=%E2%9C%93&q=timber+wordpress&type=Repositories&ref=searchresults