Enviar búsqueda
Cargar
WordPress-Templates mit Twig erstellen - PHPUGFFM
•
2 recomendaciones
•
2,050 vistas
Walter Ebert
Seguir
Vortrag bei der PHP Usergroup Frankfurt am 21. Januar 2016
Leer menos
Leer más
Internet
Denunciar
Compartir
Denunciar
Compartir
1 de 43
Descargar ahora
Descargar para leer sin conexión
Recomendados
Bilder einbinden ist kein Thema, oder?
Bilder einbinden ist kein Thema, oder?
Walter Ebert
Bilder usw...
Bilder usw...
Walter Ebert
Mehr Performance für WordPress - WordCamp Köln
Mehr Performance für WordPress - WordCamp Köln
Walter Ebert
HTML 5 - Overview
HTML 5 - Overview
Marcelio Leal
WordPress mit Composer und Git verwalten
WordPress mit Composer und Git verwalten
Walter Ebert
High Performance Images
High Performance Images
Walter Ebert
Enjoy the vue.js
Enjoy the vue.js
TechExeter
jQuery For Beginners - jQuery Conference 2009
jQuery For Beginners - jQuery Conference 2009
Ralph Whitbeck
Recomendados
Bilder einbinden ist kein Thema, oder?
Bilder einbinden ist kein Thema, oder?
Walter Ebert
Bilder usw...
Bilder usw...
Walter Ebert
Mehr Performance für WordPress - WordCamp Köln
Mehr Performance für WordPress - WordCamp Köln
Walter Ebert
HTML 5 - Overview
HTML 5 - Overview
Marcelio Leal
WordPress mit Composer und Git verwalten
WordPress mit Composer und Git verwalten
Walter Ebert
High Performance Images
High Performance Images
Walter Ebert
Enjoy the vue.js
Enjoy the vue.js
TechExeter
jQuery For Beginners - jQuery Conference 2009
jQuery For Beginners - jQuery Conference 2009
Ralph Whitbeck
An introduction to Vue.js
An introduction to Vue.js
Javier Lafora Rey
HTML5: Markup Evolved
HTML5: Markup Evolved
Billy Hylton
The Point of Vue - Intro to Vue.js
The Point of Vue - Intro to Vue.js
Holly Schinsky
jQuery UI and Plugins
jQuery UI and Plugins
Marc Grabanski
Lone StarPHP 2013 - Building Web Apps from a New Angle
Lone StarPHP 2013 - Building Web Apps from a New Angle
Pablo Godel
WordCamp Praga 2015
WordCamp Praga 2015
Tomasz Dziuda
Responsive Videos, mehr oder weniger
Responsive Videos, mehr oder weniger
Walter Ebert
What you need to know bout html5
What you need to know bout html5
Kevin DeRudder
Css3
Css3
Bronson Quick
Leave No One Behind with HTML5 - FFWD.PRO, Croatia
Leave No One Behind with HTML5 - FFWD.PRO, Croatia
Robert Nyman
Scalable Front-end Development with Vue.JS
Scalable Front-end Development with Vue.JS
Galih Pratama
Realize mais com HTML 5 e CSS 3 - 16 EDTED - RJ
Realize mais com HTML 5 e CSS 3 - 16 EDTED - RJ
Leonardo Balter
An Introduction to Vuejs
An Introduction to Vuejs
Paddy Lock
Attractive HTML5~開発者の視点から~
Attractive HTML5~開発者の視点から~
Sho Ito
JavaScript APIs - The Web is the Platform - MDN Hack Day, Sao Paulo
JavaScript APIs - The Web is the Platform - MDN Hack Day, Sao Paulo
Robert Nyman
Contributing to WordPress Core - Peter Wilson
Contributing to WordPress Core - Peter Wilson
WordCamp Sydney
jQuery (DrupalCamp Toronto)
jQuery (DrupalCamp Toronto)
jeresig
High-Quality JavaScript
High-Quality JavaScript
Marc Bächinger
An introduction to Vue.js
An introduction to Vue.js
Pagepro
HTML5, The Open Web, and what it means for you - MDN Hack Day, Sao Paulo
HTML5, The Open Web, and what it means for you - MDN Hack Day, Sao Paulo
Robert Nyman
Twig, the flexible, fast, and secure template language for PHP
Twig, the flexible, fast, and secure template language for PHP
Fabien Potencier
Die Zeit der Passwörter ist abgelaufen
Die Zeit der Passwörter ist abgelaufen
Joachim Hummel
Más contenido relacionado
La actualidad más candente
An introduction to Vue.js
An introduction to Vue.js
Javier Lafora Rey
HTML5: Markup Evolved
HTML5: Markup Evolved
Billy Hylton
The Point of Vue - Intro to Vue.js
The Point of Vue - Intro to Vue.js
Holly Schinsky
jQuery UI and Plugins
jQuery UI and Plugins
Marc Grabanski
Lone StarPHP 2013 - Building Web Apps from a New Angle
Lone StarPHP 2013 - Building Web Apps from a New Angle
Pablo Godel
WordCamp Praga 2015
WordCamp Praga 2015
Tomasz Dziuda
Responsive Videos, mehr oder weniger
Responsive Videos, mehr oder weniger
Walter Ebert
What you need to know bout html5
What you need to know bout html5
Kevin DeRudder
Css3
Css3
Bronson Quick
Leave No One Behind with HTML5 - FFWD.PRO, Croatia
Leave No One Behind with HTML5 - FFWD.PRO, Croatia
Robert Nyman
Scalable Front-end Development with Vue.JS
Scalable Front-end Development with Vue.JS
Galih Pratama
Realize mais com HTML 5 e CSS 3 - 16 EDTED - RJ
Realize mais com HTML 5 e CSS 3 - 16 EDTED - RJ
Leonardo Balter
An Introduction to Vuejs
An Introduction to Vuejs
Paddy Lock
Attractive HTML5~開発者の視点から~
Attractive HTML5~開発者の視点から~
Sho Ito
JavaScript APIs - The Web is the Platform - MDN Hack Day, Sao Paulo
JavaScript APIs - The Web is the Platform - MDN Hack Day, Sao Paulo
Robert Nyman
Contributing to WordPress Core - Peter Wilson
Contributing to WordPress Core - Peter Wilson
WordCamp Sydney
jQuery (DrupalCamp Toronto)
jQuery (DrupalCamp Toronto)
jeresig
High-Quality JavaScript
High-Quality JavaScript
Marc Bächinger
An introduction to Vue.js
An introduction to Vue.js
Pagepro
HTML5, The Open Web, and what it means for you - MDN Hack Day, Sao Paulo
HTML5, The Open Web, and what it means for you - MDN Hack Day, Sao Paulo
Robert Nyman
La actualidad más candente
(20)
An introduction to Vue.js
An introduction to Vue.js
HTML5: Markup Evolved
HTML5: Markup Evolved
The Point of Vue - Intro to Vue.js
The Point of Vue - Intro to Vue.js
jQuery UI and Plugins
jQuery UI and Plugins
Lone StarPHP 2013 - Building Web Apps from a New Angle
Lone StarPHP 2013 - Building Web Apps from a New Angle
WordCamp Praga 2015
WordCamp Praga 2015
Responsive Videos, mehr oder weniger
Responsive Videos, mehr oder weniger
What you need to know bout html5
What you need to know bout html5
Css3
Css3
Leave No One Behind with HTML5 - FFWD.PRO, Croatia
Leave No One Behind with HTML5 - FFWD.PRO, Croatia
Scalable Front-end Development with Vue.JS
Scalable Front-end Development with Vue.JS
Realize mais com HTML 5 e CSS 3 - 16 EDTED - RJ
Realize mais com HTML 5 e CSS 3 - 16 EDTED - RJ
An Introduction to Vuejs
An Introduction to Vuejs
Attractive HTML5~開発者の視点から~
Attractive HTML5~開発者の視点から~
JavaScript APIs - The Web is the Platform - MDN Hack Day, Sao Paulo
JavaScript APIs - The Web is the Platform - MDN Hack Day, Sao Paulo
Contributing to WordPress Core - Peter Wilson
Contributing to WordPress Core - Peter Wilson
jQuery (DrupalCamp Toronto)
jQuery (DrupalCamp Toronto)
High-Quality JavaScript
High-Quality JavaScript
An introduction to Vue.js
An introduction to Vue.js
HTML5, The Open Web, and what it means for you - MDN Hack Day, Sao Paulo
HTML5, The Open Web, and what it means for you - MDN Hack Day, Sao Paulo
Destacado
Twig, the flexible, fast, and secure template language for PHP
Twig, the flexible, fast, and secure template language for PHP
Fabien Potencier
Die Zeit der Passwörter ist abgelaufen
Die Zeit der Passwörter ist abgelaufen
Joachim Hummel
Mythen der WordPress-Sicherheit (Barcamp Koblenz 2015)
Mythen der WordPress-Sicherheit (Barcamp Koblenz 2015)
libertello GmbH
Das Child-Theme-Dilemma
Das Child-Theme-Dilemma
Torsten Landsiedel
Wordpress Security
Wordpress Security
Daniel Potthast
Sicher bloggen mit WordPresse - CMS absichern
Sicher bloggen mit WordPresse - CMS absichern
Sven Trautwein
7 SEO Einsteiger-Tipps [SEODAY 2014, Felix Beilharz]
7 SEO Einsteiger-Tipps [SEODAY 2014, Felix Beilharz]
Felix Beilharz ✓
Writing Headlines infographic
Writing Headlines infographic
Barry Feldman
TWIG: the flexible, fast and secure template language for PHP
TWIG: the flexible, fast and secure template language for PHP
Cesare D'Amico
Kevin Indig - SEO and Growth Hacking
Kevin Indig - SEO and Growth Hacking
Kevin Indig
WordPress Security - WP Meetup München 24.9.2015
WordPress Security - WP Meetup München 24.9.2015
stk_jj
We are WP, we are legion - WP Camp 2013 Berlin
We are WP, we are legion - WP Camp 2013 Berlin
stk_jj
WordPress Grundlagen Kurs
WordPress Grundlagen Kurs
Benjamin Hartwich
Wordpress für Profis
Wordpress für Profis
Anika Erdmann
SEO Day 2016: Perfekte Ladezeiten und SEO-Hosting für Speed-Freaks
SEO Day 2016: Perfekte Ladezeiten und SEO-Hosting für Speed-Freaks
SEARCH ONE
How to Become a Thought Leader in Your Niche
How to Become a Thought Leader in Your Niche
Leslie Samuel
Destacado
(16)
Twig, the flexible, fast, and secure template language for PHP
Twig, the flexible, fast, and secure template language for PHP
Die Zeit der Passwörter ist abgelaufen
Die Zeit der Passwörter ist abgelaufen
Mythen der WordPress-Sicherheit (Barcamp Koblenz 2015)
Mythen der WordPress-Sicherheit (Barcamp Koblenz 2015)
Das Child-Theme-Dilemma
Das Child-Theme-Dilemma
Wordpress Security
Wordpress Security
Sicher bloggen mit WordPresse - CMS absichern
Sicher bloggen mit WordPresse - CMS absichern
7 SEO Einsteiger-Tipps [SEODAY 2014, Felix Beilharz]
7 SEO Einsteiger-Tipps [SEODAY 2014, Felix Beilharz]
Writing Headlines infographic
Writing Headlines infographic
TWIG: the flexible, fast and secure template language for PHP
TWIG: the flexible, fast and secure template language for PHP
Kevin Indig - SEO and Growth Hacking
Kevin Indig - SEO and Growth Hacking
WordPress Security - WP Meetup München 24.9.2015
WordPress Security - WP Meetup München 24.9.2015
We are WP, we are legion - WP Camp 2013 Berlin
We are WP, we are legion - WP Camp 2013 Berlin
WordPress Grundlagen Kurs
WordPress Grundlagen Kurs
Wordpress für Profis
Wordpress für Profis
SEO Day 2016: Perfekte Ladezeiten und SEO-Hosting für Speed-Freaks
SEO Day 2016: Perfekte Ladezeiten und SEO-Hosting für Speed-Freaks
How to Become a Thought Leader in Your Niche
How to Become a Thought Leader in Your Niche
Similar a WordPress-Templates mit Twig erstellen - PHPUGFFM
PHPConf-TW 2012 # Twig
PHPConf-TW 2012 # Twig
Wake Liu
Front end ++: seo e flexbox
Front end ++: seo e flexbox
Fernanda Bernardo
Use Symfony2 components inside WordPress
Use Symfony2 components inside WordPress
Maurizio Pelizzone
Twig
Twig
Sir-Arturio
Extending Twig
Extending Twig
Gerry Vandermaesen
2022 HTML5: The future is now
2022 HTML5: The future is now
Gonzalo Cordero
Html5 For Jjugccc2009fall
Html5 For Jjugccc2009fall
Shumpei Shiraishi
Mobile themes, QR codes, and shortURLs
Mobile themes, QR codes, and shortURLs
Harvard Web Working Group
Html5 & CSS overview
Html5 & CSS overview
Ivan Frantar
Presentation html5 css3 by thibaut
Presentation html5 css3 by thibaut
Thibaut Baillet
HTML5: Smart Markup for Smarter Websites [Future of Web Apps, Las Vegas 2011]
HTML5: Smart Markup for Smarter Websites [Future of Web Apps, Las Vegas 2011]
Aaron Gustafson
Building iPhone Web Apps using "classic" Domino
Building iPhone Web Apps using "classic" Domino
Rob Bontekoe
PSD to WordPress
PSD to WordPress
Nile Flores
Html5
Html5
Satoshi Kikuchi
Templates81 special document
Templates81 special document
Lan Nguyen
Templates81 special document
Templates81 special document
Lan Nguyen
An Introduction To HTML5
An Introduction To HTML5
Robert Nyman
HTML5 workshop, part 1
HTML5 workshop, part 1
Robert Nyman
CSS3 Takes on the World
CSS3 Takes on the World
Jonathan Snook
Geek Moot '09 -- Smarty 101
Geek Moot '09 -- Smarty 101
Ted Kulp
Similar a WordPress-Templates mit Twig erstellen - PHPUGFFM
(20)
PHPConf-TW 2012 # Twig
PHPConf-TW 2012 # Twig
Front end ++: seo e flexbox
Front end ++: seo e flexbox
Use Symfony2 components inside WordPress
Use Symfony2 components inside WordPress
Twig
Twig
Extending Twig
Extending Twig
2022 HTML5: The future is now
2022 HTML5: The future is now
Html5 For Jjugccc2009fall
Html5 For Jjugccc2009fall
Mobile themes, QR codes, and shortURLs
Mobile themes, QR codes, and shortURLs
Html5 & CSS overview
Html5 & CSS overview
Presentation html5 css3 by thibaut
Presentation html5 css3 by thibaut
HTML5: Smart Markup for Smarter Websites [Future of Web Apps, Las Vegas 2011]
HTML5: Smart Markup for Smarter Websites [Future of Web Apps, Las Vegas 2011]
Building iPhone Web Apps using "classic" Domino
Building iPhone Web Apps using "classic" Domino
PSD to WordPress
PSD to WordPress
Html5
Html5
Templates81 special document
Templates81 special document
Templates81 special document
Templates81 special document
An Introduction To HTML5
An Introduction To HTML5
HTML5 workshop, part 1
HTML5 workshop, part 1
CSS3 Takes on the World
CSS3 Takes on the World
Geek Moot '09 -- Smarty 101
Geek Moot '09 -- Smarty 101
Más de Walter Ebert
FrOSCon 2023: WordPress als ActivityPub-Instanz
FrOSCon 2023: WordPress als ActivityPub-Instanz
Walter Ebert
Hero Video Performance - DrupalCamp Ruhr
Hero Video Performance - DrupalCamp Ruhr
Walter Ebert
Sicherheit für WordPress
Sicherheit für WordPress
Walter Ebert
WordPress aufräumen - WordCamp Stuttgart
WordPress aufräumen - WordCamp Stuttgart
Walter Ebert
WordPress aufräumen
WordPress aufräumen
Walter Ebert
Hero Video Performance
Hero Video Performance
Walter Ebert
WordPress-Webseiten umziehen / online stellen
WordPress-Webseiten umziehen / online stellen
Walter Ebert
Using browser settings for performance
Using browser settings for performance
Walter Ebert
Das richtige WordPress-Theme finden
Das richtige WordPress-Theme finden
Walter Ebert
WordPress Health Check - WordCamp Würzburg
WordPress Health Check - WordCamp Würzburg
Walter Ebert
WordPress Health Check
WordPress Health Check
Walter Ebert
Making WordPress fast(er)
Making WordPress fast(er)
Walter Ebert
Testumgebungen für WordPress
Testumgebungen für WordPress
Walter Ebert
Modernism in Web Design
Modernism in Web Design
Walter Ebert
WordPress Multisite
WordPress Multisite
Walter Ebert
Weniger aus Bilder holen
Weniger aus Bilder holen
Walter Ebert
HTTPS + Let's Encrypt
HTTPS + Let's Encrypt
Walter Ebert
WordPress-Themes mit Twig entwickeln
WordPress-Themes mit Twig entwickeln
Walter Ebert
Mehr Performance für WordPress - WPFra
Mehr Performance für WordPress - WPFra
Walter Ebert
Sinn und Unsinn von SSL
Sinn und Unsinn von SSL
Walter Ebert
Más de Walter Ebert
(20)
FrOSCon 2023: WordPress als ActivityPub-Instanz
FrOSCon 2023: WordPress als ActivityPub-Instanz
Hero Video Performance - DrupalCamp Ruhr
Hero Video Performance - DrupalCamp Ruhr
Sicherheit für WordPress
Sicherheit für WordPress
WordPress aufräumen - WordCamp Stuttgart
WordPress aufräumen - WordCamp Stuttgart
WordPress aufräumen
WordPress aufräumen
Hero Video Performance
Hero Video Performance
WordPress-Webseiten umziehen / online stellen
WordPress-Webseiten umziehen / online stellen
Using browser settings for performance
Using browser settings for performance
Das richtige WordPress-Theme finden
Das richtige WordPress-Theme finden
WordPress Health Check - WordCamp Würzburg
WordPress Health Check - WordCamp Würzburg
WordPress Health Check
WordPress Health Check
Making WordPress fast(er)
Making WordPress fast(er)
Testumgebungen für WordPress
Testumgebungen für WordPress
Modernism in Web Design
Modernism in Web Design
WordPress Multisite
WordPress Multisite
Weniger aus Bilder holen
Weniger aus Bilder holen
HTTPS + Let's Encrypt
HTTPS + Let's Encrypt
WordPress-Themes mit Twig entwickeln
WordPress-Themes mit Twig entwickeln
Mehr Performance für WordPress - WPFra
Mehr Performance für WordPress - WPFra
Sinn und Unsinn von SSL
Sinn und Unsinn von SSL
Último
Call Now ☎ 8264348440 !! Call Girls in Shahpur Jat Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Shahpur Jat Escort Service Delhi N.C.R.
soniya singh
Rohini Sector 6 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 6 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Call Girls In Delhi Whatsup 9873940964 Enjoy Unlimited Pleasure
Rohini Sector 26 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 26 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Call Girls In Delhi Whatsup 9873940964 Enjoy Unlimited Pleasure
Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...
Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...
SofiyaSharma5
Dwarka Sector 26 Call Girls | Delhi | 9999965857 🫦 Vanshika Verma More Our Se...
Dwarka Sector 26 Call Girls | Delhi | 9999965857 🫦 Vanshika Verma More Our Se...
Call Girls In Delhi Whatsup 9873940964 Enjoy Unlimited Pleasure
Russian Call girl in Ajman +971563133746 Ajman Call girl Service
Russian Call girl in Ajman +971563133746 Ajman Call girl Service
gwenoracqe6
SEO Growth Program-Digital optimization Specialist
SEO Growth Program-Digital optimization Specialist
KHM Anwar
10.pdfMature Call girls in Dubai +971563133746 Dubai Call girls
10.pdfMature Call girls in Dubai +971563133746 Dubai Call girls
stephieert
Challengers I Told Ya ShirtChallengers I Told Ya Shirt
Challengers I Told Ya ShirtChallengers I Told Ya Shirt
rahman018755
All Time Service Available Call Girls Mg Road 👌 ⏭️ 6378878445
All Time Service Available Call Girls Mg Road 👌 ⏭️ 6378878445
ruhi
On Starlink, presented by Geoff Huston at NZNOG 2024
On Starlink, presented by Geoff Huston at NZNOG 2024
APNIC
AlbaniaDreamin24 - How to easily use an API with Flows
AlbaniaDreamin24 - How to easily use an API with Flows
Thierry TROUIN ☁
Chennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts service
sonalikaur4
Networking in the Penumbra presented by Geoff Huston at NZNOG
Networking in the Penumbra presented by Geoff Huston at NZNOG
APNIC
Hot Service (+9316020077 ) Goa Call Girls Real Photos and Genuine Service
Hot Service (+9316020077 ) Goa Call Girls Real Photos and Genuine Service
sexy call girls service in goa
AWS Community DAY Albertini-Ellan Cloud Security (1).pptx
AWS Community DAY Albertini-Ellan Cloud Security (1).pptx
ellan12
Call Girls In Defence Colony Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Defence Colony Delhi 💯Call Us 🔝8264348440🔝
soniya singh
Call Girls in Mayur Vihar ✔️ 9711199171 ✔️ Delhi ✔️ Enjoy Call Girls With Our...
Call Girls in Mayur Vihar ✔️ 9711199171 ✔️ Delhi ✔️ Enjoy Call Girls With Our...
sonatiwari757
Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝
soniya singh
Radiant Call girls in Dubai O56338O268 Dubai Call girls
Radiant Call girls in Dubai O56338O268 Dubai Call girls
stephieert
Último
(20)
Call Now ☎ 8264348440 !! Call Girls in Shahpur Jat Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Shahpur Jat Escort Service Delhi N.C.R.
Rohini Sector 6 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 6 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 26 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 26 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...
Low Rate Young Call Girls in Sector 63 Mamura Noida ✔️☆9289244007✔️☆ Female E...
Dwarka Sector 26 Call Girls | Delhi | 9999965857 🫦 Vanshika Verma More Our Se...
Dwarka Sector 26 Call Girls | Delhi | 9999965857 🫦 Vanshika Verma More Our Se...
Russian Call girl in Ajman +971563133746 Ajman Call girl Service
Russian Call girl in Ajman +971563133746 Ajman Call girl Service
SEO Growth Program-Digital optimization Specialist
SEO Growth Program-Digital optimization Specialist
10.pdfMature Call girls in Dubai +971563133746 Dubai Call girls
10.pdfMature Call girls in Dubai +971563133746 Dubai Call girls
Challengers I Told Ya ShirtChallengers I Told Ya Shirt
Challengers I Told Ya ShirtChallengers I Told Ya Shirt
All Time Service Available Call Girls Mg Road 👌 ⏭️ 6378878445
All Time Service Available Call Girls Mg Road 👌 ⏭️ 6378878445
On Starlink, presented by Geoff Huston at NZNOG 2024
On Starlink, presented by Geoff Huston at NZNOG 2024
AlbaniaDreamin24 - How to easily use an API with Flows
AlbaniaDreamin24 - How to easily use an API with Flows
Chennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Porur Phone 🍆 8250192130 👅 celebrity escorts service
Networking in the Penumbra presented by Geoff Huston at NZNOG
Networking in the Penumbra presented by Geoff Huston at NZNOG
Hot Service (+9316020077 ) Goa Call Girls Real Photos and Genuine Service
Hot Service (+9316020077 ) Goa Call Girls Real Photos and Genuine Service
AWS Community DAY Albertini-Ellan Cloud Security (1).pptx
AWS Community DAY Albertini-Ellan Cloud Security (1).pptx
Call Girls In Defence Colony Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Defence Colony Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Mayur Vihar ✔️ 9711199171 ✔️ Delhi ✔️ Enjoy Call Girls With Our...
Call Girls in Mayur Vihar ✔️ 9711199171 ✔️ Delhi ✔️ Enjoy Call Girls With Our...
Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝
Radiant Call girls in Dubai O56338O268 Dubai Call girls
Radiant Call girls in Dubai O56338O268 Dubai Call girls
WordPress-Templates mit Twig erstellen - PHPUGFFM
1.
2.
3.
4.
The Loop <?php get_header();
?> <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?> <h2><a href="<?php the_permalink(); ?>"> <?php echo strtoupper( get_the_title() ); ?> </a></h2> <?php if ( has_post_thumbnail() ) the_post_thumbnail(); ?> <div class="content"><?php the_content(); ?></div> <?php comments_template(); ?> <?php endif; ?> <?php get_footer(); ?> https://codex.wordpress.org/The_Loop
5.
6.
Vorteile von Twig •
Trennung von HTML und PHP • Einfacher für Anfänger • Mehr Sicherheit • Vererbung von Templates • Erfahrung aus andere PHP-Projekte nutzen
7.
Projekte die Twig
nutzen • Symfony • Drupal 8 • EZ Publish • Bolt • Grav • Craft • Slim • Sculpin • Satis • Wallabag • (Laravel) • ...
8.
Nachteile von Twig •
Extra Template-Sprache • Code ist (etwas) langsamer
9.
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
10.
composer.json { "require": { "php": "^5.3.2
|| ^7.0", "twig/twig": "^1.23" } } https://getcomposer.org/
11.
composer.json { "require": { "php": "^5.3.2
|| ^7.0", "twig/twig": "^1.23", "johnpbloch/wordpress": "*" }, "extra": { "wordpress-install-dir": "web" } } http://composer.rarst.net/
12.
Twig laden require_once '/path/to/vendor/autoload.php'; $loader
= new Twig_Loader_Filesystem('/path/to/templates'); $twig = new Twig_Environment($loader); // WordPress Voodoo $data→ echo $twig->render('index.twig', $data);
13.
14.
15.
WordPress Packagist { "repositories" :
[ {"type": "composer", "url": "http://wpackagist.org"} ], "require": { "php": "^5.3.2 || ^7.0", "composer/installers": "~1.0", "johnpbloch/wordpress": "*", "twig/twig": "^1.23", "wpackagist-plugin/timber-library": "*", "wpackagist-theme/twentyfifteen": "*" } "extra": { "wordpress-install-dir": "web/wp", "installer-paths": { "web/wp-content/mu-plugins/{$name}" : ["type:wordpress-muplugin"], "web/wp-content/plugins/{$name}": ["type:wordpress-plugin"], "web/wp-content/themes/{$name}": ["type:wordpress-theme"] } } } http://wpackagist.org/
16.
web/wp-config.php require __DIR__ .
'/../vendor/autoload.php'; ... define( 'WP_HOME', 'http://example.com' ); define( 'WP_SITEURL', 'http://example.com/wp' ); define( 'WP_CONTENT_URL', 'http://example.com/wp-content' ); define( 'WP_CONTENT_DIR', __DIR__ . '/wp-content/' ); https://codex.wordpress.org/Editing_wp-config.php
17.
web/index.php <?php define( 'WP_USE_THEMES', true
); require __DIR__ . '/wp/wp-blog-header.php';
18.
…/theme/single.php <?php $context = Timber::get_context(); $context['post']
= new TimberPost(); Timber::render( 'single.twig', $context );
19.
20.
…/theme/functions.php function my_context( $data
) { $data['foo'] = 'bar'; $data['menu'] = new TimberMenu(); return $data; } add_filter( 'timber_context', 'my_context' );
21.
…/theme/page.php <?php $context = Timber::get_context(); $context['foo']
= 'bar'; $context['menu'] = new TimberMenu(); $context['post'] = new TimberPost(); Timber::render( 'page.twig', $context );
22.
Twig-Syntax {{ }} //
Ausgabe {% %} // Logik {# #} // Kommentar
23.
…/theme/views/single.twig {# Dies ist
ein Beitrag #} {% extends "base.twig" %} {% block content %} <h2>{{ post.title|upper }}</h2> {% if post.thumbnail %} <img src="{{ post.thumbnail.src }}"> {% endif %} <div class="content">{{ post.content }}</div> {% include 'comments.twig' %} {% endblock %}
24.
…/theme/views/single.twig {# Dies ist
ein Beitrag #} {% extends "base.twig" %} {% block content %} <h2>{{ post.title|upper }}</h2> {% if post.thumbnail %} <img src="{{ post.thumbnail.src }}"> {% endif %} <div class="content">{{ post.content }}</div> {% include 'comments.twig' %} {% endblock %}
25.
…/theme/views/single.twig {# Dies ist
ein Beitrag #} {% extends "base.twig" %} {% block content %} <h2>{{ post.title|upper }}</h2> {% if post.thumbnail %} <img src="{{ post.thumbnail.src }}"> {% endif %} <div class="content">{{ post.content }}</div> {% include 'comments.twig' %} {% endblock %}
26.
…/theme/views/single.twig {# Dies ist
ein Beitrag #} {% extends "base.twig" %} {% block content %} <h2>{{ post.title|upper }}</h2> {% if post.thumbnail %} <img src="{{ post.thumbnail.src }}"> {% endif %} <div class="content">{{ post.content }}</div> {% include 'comments.twig' %} {% endblock %}
27.
…/theme/views/single.twig {# Dies ist
ein Beitrag #} {% extends "base.twig" %} {% block content %} <h2>{{ post.title|upper }}</h2> {% if post.thumbnail %} <img src="{{ post.thumbnail.src }}"> {% endif %} <div class="content">{{ post.content }}</div> {% include 'comments.twig' %} {% endblock %}
28.
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 ); https://codex.wordpress.org/Class_Reference/WP_Query
29.
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 %}
30.
Übersetzungen <?php echo __(
'Sorry, no posts.', 'textdomain' ) ); ?> <?php _e( 'Sorry, no posts.', 'textdomain' ); ?> -> {{ __('Sorry, no posts.', 'textdomain') }}
31.
WordPress-Funktionen <?php get_search_form(); ?> -> {{
fn('get_search_form') }}
32.
Benutzerdefinierte Felder <h3>{{ post.title
}}</h3> <div class="intro-text"> {{ post.custom_field }} </div> https://codex.wordpress.org/Custom_Fields
33.
Advanced Custom Fields <h3>{{
post.title }}</h3> <div class="intro-text"> {{ post.get_field('meins_intro_text') }} </div> https://wordpress.org/plugins/advanced-custom-fields/
34.
Timber-Klassen erweitern class MySitePost
extends TimberPost { var $_issue; public function issue() { if (!$this->_issue) { $issues = $this->get_terms('issues'); if (is_array($issues) && count($issues)) { $this->_issue = $issues[0]; } } return $this->_issue; } } https://github.com/jarednova/timber/wiki/Extending-Timber
35.
Eigene Twig-Filter erstellen add_filter(
'get_twig', function( $twig ) { $twig->addFilter( new Twig_SimpleFilter( 'comment_text', function( $text ) { return apply_filters( 'comment_text', $text ); } ) ); return $twig; } ); https://github.com/jarednova/timber/wiki/Extending-Timber
36.
Twig-Extensions nutzen add_filter( 'get_twig',
function( $twig ) { $twig->addExtension( new Twig_Extensions_Extension_Text() ); return $twig; } ); https://packagist.org/packages/twig/extensions
37.
38.
39.
40.
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 http://responsivewebdesign.com/toast/backend/
41.
WordPress-Projekte starten composer create-project
roots/bedrock composer create-project org_heigl/wordpress_bootstrap composer create-project wee/wordpress-project
42.
WordPress-Termine Jeden 2. Dienstag
des Monats, WP-Meetup Frankfurt https://wpmeetup-frankfurt.de/ 16.-17. April 2016, WordCamp Nürnberg https://nuremberg.wordcamp.org/2016/ 24.-26. Juni 2016, WordCamp Europe, Wien https://2016.europe.wordcamp.org/ September/Oktober 2016, WordCamp Frankfurt https://frankfurt.wordcamp.org/
43.
walter.ebert.engineering @wltrd walterebert.de slideshare.net/walterebert
Descargar ahora