WordPress-Templates mit Twig erstellen - PHPUGFFM

Walter Ebert
Walter EbertIndependent Web & Usability Engineer at walter.ebert.engineering
WordPress-Templates mit Twig erstellen - PHPUGFFM
WordPress-Templates mit Twig erstellen - PHPUGFFM
WordPress-Templates mit Twig erstellen - PHPUGFFM
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
WordPress-Templates mit Twig erstellen - PHPUGFFM
Vorteile von Twig
• Trennung von HTML und PHP
• Einfacher für Anfänger
• Mehr Sicherheit
• Vererbung von Templates
• Erfahrung aus andere PHP-Projekte nutzen
Projekte die Twig nutzen
• Symfony
• Drupal 8
• EZ Publish
• Bolt
• Grav
• Craft
• Slim
• Sculpin
• Satis
• Wallabag
• (Laravel)
• ...
Nachteile von Twig
• Extra Template-Sprache
• Code ist (etwas) langsamer
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
composer.json
{
"require": {
"php": "^5.3.2 || ^7.0",
"twig/twig": "^1.23"
}
}
https://getcomposer.org/
composer.json
{
"require": {
"php": "^5.3.2 || ^7.0",
"twig/twig": "^1.23",
"johnpbloch/wordpress": "*"
},
"extra": {
"wordpress-install-dir": "web"
}
}
http://composer.rarst.net/
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);
WordPress-Templates mit Twig erstellen - PHPUGFFM
WordPress-Templates mit Twig erstellen - PHPUGFFM
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/
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
web/index.php
<?php
define( 'WP_USE_THEMES', true );
require __DIR__ . '/wp/wp-blog-header.php';
…/theme/single.php
<?php
$context = Timber::get_context();
$context['post'] = new TimberPost();
Timber::render( 'single.twig', $context );
WordPress-Templates mit Twig erstellen - PHPUGFFM
…/theme/functions.php
function my_context( $data ) {
$data['foo'] = 'bar';
$data['menu'] = new TimberMenu();
return $data;
}
add_filter( 'timber_context', 'my_context' );
…/theme/page.php
<?php
$context = Timber::get_context();
$context['foo'] = 'bar';
$context['menu'] = new TimberMenu();
$context['post'] = new TimberPost();
Timber::render( 'page.twig', $context );
Twig-Syntax
{{ }} // Ausgabe
{% %} // Logik
{# #} // Kommentar
…/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 %}
…/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 %}
…/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 %}
…/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 %}
…/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 %}
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
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 %}
Übersetzungen
<?php echo __( 'Sorry, no posts.', 'textdomain' ) ); ?>
<?php _e( 'Sorry, no posts.', 'textdomain' ); ?>
->
{{ __('Sorry, no posts.', 'textdomain') }}
WordPress-Funktionen
<?php get_search_form(); ?>
->
{{ fn('get_search_form') }}
Benutzerdefinierte Felder
<h3>{{ post.title }}</h3>
<div class="intro-text">
{{ post.custom_field }}
</div>
https://codex.wordpress.org/Custom_Fields
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/
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
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
Twig-Extensions nutzen
add_filter( 'get_twig', function( $twig ) {
$twig->addExtension(
new Twig_Extensions_Extension_Text()
);
return $twig;
} );
https://packagist.org/packages/twig/extensions
WordPress-Templates mit Twig erstellen - PHPUGFFM
WordPress-Templates mit Twig erstellen - PHPUGFFM
WordPress-Templates mit Twig erstellen - PHPUGFFM
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/
WordPress-Projekte starten
composer create-project roots/bedrock
composer create-project org_heigl/wordpress_bootstrap
composer create-project wee/wordpress-project
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/
walter.ebert.engineering
@wltrd
walterebert.de
slideshare.net/walterebert
1 of 43

Recommended

Bilder einbinden ist kein Thema, oder? by
Bilder einbinden ist kein Thema, oder?Bilder einbinden ist kein Thema, oder?
Bilder einbinden ist kein Thema, oder?Walter Ebert
1.9K views54 slides
Bilder usw... by
Bilder usw...Bilder usw...
Bilder usw...Walter Ebert
1.7K views54 slides
Mehr Performance für WordPress - WordCamp Köln by
Mehr Performance für WordPress - WordCamp KölnMehr Performance für WordPress - WordCamp Köln
Mehr Performance für WordPress - WordCamp KölnWalter Ebert
3.8K views57 slides
HTML 5 - Overview by
HTML 5 - OverviewHTML 5 - Overview
HTML 5 - OverviewMarcelio Leal
666 views44 slides
WordPress mit Composer und Git verwalten by
WordPress mit Composer und Git verwaltenWordPress mit Composer und Git verwalten
WordPress mit Composer und Git verwaltenWalter Ebert
1.6K views48 slides
High Performance Images by
High Performance ImagesHigh Performance Images
High Performance ImagesWalter Ebert
5.9K views60 slides

More Related Content

What's hot

An introduction to Vue.js by
An introduction to Vue.jsAn introduction to Vue.js
An introduction to Vue.jsJavier Lafora Rey
1.9K views149 slides
HTML5: Markup Evolved by
HTML5: Markup EvolvedHTML5: Markup Evolved
HTML5: Markup EvolvedBilly Hylton
485 views28 slides
The Point of Vue - Intro to Vue.js by
The Point of Vue - Intro to Vue.jsThe Point of Vue - Intro to Vue.js
The Point of Vue - Intro to Vue.jsHolly Schinsky
1.6K views30 slides
jQuery UI and Plugins by
jQuery UI and PluginsjQuery UI and Plugins
jQuery UI and PluginsMarc Grabanski
6.7K views94 slides
Lone StarPHP 2013 - Building Web Apps from a New Angle by
Lone StarPHP 2013 - Building Web Apps from a New AngleLone StarPHP 2013 - Building Web Apps from a New Angle
Lone StarPHP 2013 - Building Web Apps from a New AnglePablo Godel
6.5K views53 slides
WordCamp Praga 2015 by
WordCamp Praga 2015WordCamp Praga 2015
WordCamp Praga 2015Tomasz Dziuda
4K views113 slides

What's hot(20)

HTML5: Markup Evolved by Billy Hylton
HTML5: Markup EvolvedHTML5: Markup Evolved
HTML5: Markup Evolved
Billy Hylton485 views
The Point of Vue - Intro to Vue.js by Holly Schinsky
The Point of Vue - Intro to Vue.jsThe Point of Vue - Intro to Vue.js
The Point of Vue - Intro to Vue.js
Holly Schinsky1.6K views
Lone StarPHP 2013 - Building Web Apps from a New Angle by Pablo Godel
Lone StarPHP 2013 - Building Web Apps from a New AngleLone StarPHP 2013 - Building Web Apps from a New Angle
Lone StarPHP 2013 - Building Web Apps from a New Angle
Pablo Godel6.5K views
Responsive Videos, mehr oder weniger by Walter Ebert
Responsive Videos, mehr oder wenigerResponsive Videos, mehr oder weniger
Responsive Videos, mehr oder weniger
Walter Ebert8.1K views
What you need to know bout html5 by Kevin DeRudder
What you need to know bout html5What you need to know bout html5
What you need to know bout html5
Kevin DeRudder973 views
Leave No One Behind with HTML5 - FFWD.PRO, Croatia by Robert Nyman
Leave No One Behind with HTML5 - FFWD.PRO, CroatiaLeave No One Behind with HTML5 - FFWD.PRO, Croatia
Leave No One Behind with HTML5 - FFWD.PRO, Croatia
Robert Nyman32.7K views
Scalable Front-end Development with Vue.JS by Galih Pratama
Scalable Front-end Development with Vue.JSScalable Front-end Development with Vue.JS
Scalable Front-end Development with Vue.JS
Galih Pratama264 views
Realize mais com HTML 5 e CSS 3 - 16 EDTED - RJ by Leonardo Balter
Realize mais com HTML 5 e CSS 3 - 16 EDTED - RJRealize mais com HTML 5 e CSS 3 - 16 EDTED - RJ
Realize mais com HTML 5 e CSS 3 - 16 EDTED - RJ
Leonardo Balter1.1K views
An Introduction to Vuejs by Paddy Lock
An Introduction to VuejsAn Introduction to Vuejs
An Introduction to Vuejs
Paddy Lock4.6K views
Attractive HTML5~開発者の視点から~ by Sho Ito
Attractive HTML5~開発者の視点から~Attractive HTML5~開発者の視点から~
Attractive HTML5~開発者の視点から~
Sho Ito1.3K views
JavaScript APIs - The Web is the Platform - MDN Hack Day, Sao Paulo by Robert Nyman
JavaScript APIs - The Web is the Platform - MDN Hack Day, Sao PauloJavaScript APIs - The Web is the Platform - MDN Hack Day, Sao Paulo
JavaScript APIs - The Web is the Platform - MDN Hack Day, Sao Paulo
Robert Nyman27.5K views
Contributing to WordPress Core - Peter Wilson by WordCamp Sydney
Contributing to WordPress Core - Peter WilsonContributing to WordPress Core - Peter Wilson
Contributing to WordPress Core - Peter Wilson
WordCamp Sydney1.3K views
jQuery (DrupalCamp Toronto) by jeresig
jQuery (DrupalCamp Toronto)jQuery (DrupalCamp Toronto)
jQuery (DrupalCamp Toronto)
jeresig1.5K views
An introduction to Vue.js by Pagepro
An introduction to Vue.jsAn introduction to Vue.js
An introduction to Vue.js
Pagepro440 views
HTML5, The Open Web, and what it means for you - MDN Hack Day, Sao Paulo by Robert Nyman
HTML5, The Open Web, and what it means for you - MDN Hack Day, Sao PauloHTML5, 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 Nyman31.9K views

Viewers also liked

Twig, the flexible, fast, and secure template language for PHP by
Twig, the flexible, fast, and secure template language for PHPTwig, the flexible, fast, and secure template language for PHP
Twig, the flexible, fast, and secure template language for PHPFabien Potencier
22.7K views45 slides
Die Zeit der Passwörter ist abgelaufen by
Die Zeit der Passwörter ist abgelaufenDie Zeit der Passwörter ist abgelaufen
Die Zeit der Passwörter ist abgelaufenJoachim Hummel
2.1K views20 slides
Mythen der WordPress-Sicherheit (Barcamp Koblenz 2015) by
Mythen der WordPress-Sicherheit (Barcamp Koblenz 2015)Mythen der WordPress-Sicherheit (Barcamp Koblenz 2015)
Mythen der WordPress-Sicherheit (Barcamp Koblenz 2015)libertello GmbH
1K views20 slides
Das Child-Theme-Dilemma by
Das Child-Theme-DilemmaDas Child-Theme-Dilemma
Das Child-Theme-DilemmaTorsten Landsiedel
22.7K views33 slides
Wordpress Security by
Wordpress SecurityWordpress Security
Wordpress SecurityDaniel Potthast
1.9K views21 slides
Sicher bloggen mit WordPresse - CMS absichern by
Sicher bloggen mit WordPresse - CMS absichernSicher bloggen mit WordPresse - CMS absichern
Sicher bloggen mit WordPresse - CMS absichernSven Trautwein
2.1K views24 slides

Viewers also liked(16)

Twig, the flexible, fast, and secure template language for PHP by Fabien Potencier
Twig, the flexible, fast, and secure template language for PHPTwig, the flexible, fast, and secure template language for PHP
Twig, the flexible, fast, and secure template language for PHP
Fabien Potencier22.7K views
Die Zeit der Passwörter ist abgelaufen by Joachim Hummel
Die Zeit der Passwörter ist abgelaufenDie Zeit der Passwörter ist abgelaufen
Die Zeit der Passwörter ist abgelaufen
Joachim Hummel2.1K views
Mythen der WordPress-Sicherheit (Barcamp Koblenz 2015) by libertello GmbH
Mythen der WordPress-Sicherheit (Barcamp Koblenz 2015)Mythen der WordPress-Sicherheit (Barcamp Koblenz 2015)
Mythen der WordPress-Sicherheit (Barcamp Koblenz 2015)
libertello GmbH1K views
Sicher bloggen mit WordPresse - CMS absichern by Sven Trautwein
Sicher bloggen mit WordPresse - CMS absichernSicher bloggen mit WordPresse - CMS absichern
Sicher bloggen mit WordPresse - CMS absichern
Sven Trautwein2.1K views
7 SEO Einsteiger-Tipps [SEODAY 2014, Felix Beilharz] by Felix Beilharz ✓
7 SEO Einsteiger-Tipps [SEODAY 2014, Felix Beilharz]7 SEO Einsteiger-Tipps [SEODAY 2014, Felix Beilharz]
7 SEO Einsteiger-Tipps [SEODAY 2014, Felix Beilharz]
Writing Headlines infographic by Barry Feldman
Writing Headlines infographicWriting Headlines infographic
Writing Headlines infographic
Barry Feldman48.9K views
TWIG: the flexible, fast and secure template language for PHP by Cesare D'Amico
TWIG: the flexible, fast and secure template language for PHPTWIG: the flexible, fast and secure template language for PHP
TWIG: the flexible, fast and secure template language for PHP
Cesare D'Amico4.6K views
Kevin Indig - SEO and Growth Hacking by Kevin Indig
Kevin Indig - SEO and Growth HackingKevin Indig - SEO and Growth Hacking
Kevin Indig - SEO and Growth Hacking
Kevin Indig1.9K views
WordPress Security - WP Meetup München 24.9.2015 by stk_jj
WordPress Security - WP Meetup München 24.9.2015WordPress Security - WP Meetup München 24.9.2015
WordPress Security - WP Meetup München 24.9.2015
stk_jj2.6K views
We are WP, we are legion - WP Camp 2013 Berlin by stk_jj
We are WP, we are legion - WP Camp 2013 BerlinWe are WP, we are legion - WP Camp 2013 Berlin
We are WP, we are legion - WP Camp 2013 Berlin
stk_jj1.3K views
Wordpress für Profis by Anika Erdmann
Wordpress für ProfisWordpress für Profis
Wordpress für Profis
Anika Erdmann1.3K views
SEO Day 2016: Perfekte Ladezeiten und SEO-Hosting für Speed-Freaks by SEARCH ONE
SEO Day 2016: Perfekte Ladezeiten und SEO-Hosting für Speed-FreaksSEO Day 2016: Perfekte Ladezeiten und SEO-Hosting für Speed-Freaks
SEO Day 2016: Perfekte Ladezeiten und SEO-Hosting für Speed-Freaks
SEARCH ONE5.3K views
How to Become a Thought Leader in Your Niche by Leslie Samuel
How to Become a Thought Leader in Your NicheHow to Become a Thought Leader in Your Niche
How to Become a Thought Leader in Your Niche
Leslie Samuel1.6M views

Similar to WordPress-Templates mit Twig erstellen - PHPUGFFM

PHPConf-TW 2012 # Twig by
PHPConf-TW 2012 # TwigPHPConf-TW 2012 # Twig
PHPConf-TW 2012 # TwigWake Liu
2.3K views29 slides
Front end ++: seo e flexbox by
Front end ++: seo e flexboxFront end ++: seo e flexbox
Front end ++: seo e flexboxFernanda Bernardo
332 views21 slides
Use Symfony2 components inside WordPress by
Use Symfony2 components inside WordPress Use Symfony2 components inside WordPress
Use Symfony2 components inside WordPress Maurizio Pelizzone
9.5K views43 slides
Twig by
TwigTwig
TwigSir-Arturio
1.3K views41 slides
Extending Twig by
Extending TwigExtending Twig
Extending TwigGerry Vandermaesen
1.8K views29 slides
2022 HTML5: The future is now by
2022 HTML5: The future is now2022 HTML5: The future is now
2022 HTML5: The future is nowGonzalo Cordero
1.6K views85 slides

Similar to WordPress-Templates mit Twig erstellen - PHPUGFFM(20)

PHPConf-TW 2012 # Twig by Wake Liu
PHPConf-TW 2012 # TwigPHPConf-TW 2012 # Twig
PHPConf-TW 2012 # Twig
Wake Liu2.3K views
Use Symfony2 components inside WordPress by Maurizio Pelizzone
Use Symfony2 components inside WordPress Use Symfony2 components inside WordPress
Use Symfony2 components inside WordPress
Maurizio Pelizzone9.5K views
2022 HTML5: The future is now by Gonzalo Cordero
2022 HTML5: The future is now2022 HTML5: The future is now
2022 HTML5: The future is now
Gonzalo Cordero1.6K views
Html5 & CSS overview by Ivan Frantar
Html5 & CSS overviewHtml5 & CSS overview
Html5 & CSS overview
Ivan Frantar1.3K views
Presentation html5 css3 by thibaut by Thibaut Baillet
Presentation html5 css3 by thibautPresentation html5 css3 by thibaut
Presentation html5 css3 by thibaut
Thibaut Baillet1.4K views
HTML5: Smart Markup for Smarter Websites [Future of Web Apps, Las Vegas 2011] by Aaron Gustafson
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]
HTML5: Smart Markup for Smarter Websites [Future of Web Apps, Las Vegas 2011]
Aaron Gustafson2.1K views
Building iPhone Web Apps using "classic" Domino by Rob Bontekoe
Building iPhone Web Apps using "classic" DominoBuilding iPhone Web Apps using "classic" Domino
Building iPhone Web Apps using "classic" Domino
Rob Bontekoe1.6K views
Templates81 special document by Lan Nguyen
Templates81 special documentTemplates81 special document
Templates81 special document
Lan Nguyen197 views
Templates81 special document by Lan Nguyen
Templates81 special documentTemplates81 special document
Templates81 special document
Lan Nguyen274 views
An Introduction To HTML5 by Robert Nyman
An Introduction To HTML5An Introduction To HTML5
An Introduction To HTML5
Robert Nyman21.9K views
HTML5 workshop, part 1 by Robert Nyman
HTML5 workshop, part 1HTML5 workshop, part 1
HTML5 workshop, part 1
Robert Nyman5.7K views
Geek Moot '09 -- Smarty 101 by Ted Kulp
Geek Moot '09 -- Smarty 101Geek Moot '09 -- Smarty 101
Geek Moot '09 -- Smarty 101
Ted Kulp2.2K views

More from Walter Ebert

FrOSCon 2023: WordPress als ActivityPub-Instanz by
FrOSCon 2023: WordPress als ActivityPub-InstanzFrOSCon 2023: WordPress als ActivityPub-Instanz
FrOSCon 2023: WordPress als ActivityPub-InstanzWalter Ebert
3 views31 slides
Hero Video Performance - DrupalCamp Ruhr by
Hero Video Performance - DrupalCamp RuhrHero Video Performance - DrupalCamp Ruhr
Hero Video Performance - DrupalCamp RuhrWalter Ebert
14 views25 slides
Sicherheit für WordPress by
Sicherheit für WordPressSicherheit für WordPress
Sicherheit für WordPressWalter Ebert
630 views31 slides
WordPress aufräumen - WordCamp Stuttgart by
WordPress aufräumen - WordCamp StuttgartWordPress aufräumen - WordCamp Stuttgart
WordPress aufräumen - WordCamp StuttgartWalter Ebert
1.5K views32 slides
WordPress aufräumen by
WordPress aufräumenWordPress aufräumen
WordPress aufräumenWalter Ebert
1K views24 slides
Hero Video Performance by
Hero Video PerformanceHero Video Performance
Hero Video PerformanceWalter Ebert
1.2K views25 slides

More from Walter Ebert(20)

FrOSCon 2023: WordPress als ActivityPub-Instanz by Walter Ebert
FrOSCon 2023: WordPress als ActivityPub-InstanzFrOSCon 2023: WordPress als ActivityPub-Instanz
FrOSCon 2023: WordPress als ActivityPub-Instanz
Walter Ebert3 views
Hero Video Performance - DrupalCamp Ruhr by Walter Ebert
Hero Video Performance - DrupalCamp RuhrHero Video Performance - DrupalCamp Ruhr
Hero Video Performance - DrupalCamp Ruhr
Walter Ebert14 views
Sicherheit für WordPress by Walter Ebert
Sicherheit für WordPressSicherheit für WordPress
Sicherheit für WordPress
Walter Ebert630 views
WordPress aufräumen - WordCamp Stuttgart by Walter Ebert
WordPress aufräumen - WordCamp StuttgartWordPress aufräumen - WordCamp Stuttgart
WordPress aufräumen - WordCamp Stuttgart
Walter Ebert1.5K views
Hero Video Performance by Walter Ebert
Hero Video PerformanceHero Video Performance
Hero Video Performance
Walter Ebert1.2K views
WordPress-Webseiten umziehen / online stellen by Walter Ebert
WordPress-Webseiten umziehen / online stellenWordPress-Webseiten umziehen / online stellen
WordPress-Webseiten umziehen / online stellen
Walter Ebert537 views
Using browser settings for performance by Walter Ebert
Using browser settings for performanceUsing browser settings for performance
Using browser settings for performance
Walter Ebert581 views
Das richtige WordPress-Theme finden by Walter Ebert
Das richtige WordPress-Theme findenDas richtige WordPress-Theme finden
Das richtige WordPress-Theme finden
Walter Ebert320 views
WordPress Health Check - WordCamp Würzburg by Walter Ebert
WordPress Health Check - WordCamp WürzburgWordPress Health Check - WordCamp Würzburg
WordPress Health Check - WordCamp Würzburg
Walter Ebert1.8K views
WordPress Health Check by Walter Ebert
WordPress Health CheckWordPress Health Check
WordPress Health Check
Walter Ebert315 views
Making WordPress fast(er) by Walter Ebert
Making WordPress fast(er)Making WordPress fast(er)
Making WordPress fast(er)
Walter Ebert766 views
Testumgebungen für WordPress by Walter Ebert
Testumgebungen für WordPressTestumgebungen für WordPress
Testumgebungen für WordPress
Walter Ebert1.2K views
Modernism in Web Design by Walter Ebert
Modernism in Web DesignModernism in Web Design
Modernism in Web Design
Walter Ebert1.4K views
Weniger aus Bilder holen by Walter Ebert
Weniger aus Bilder holenWeniger aus Bilder holen
Weniger aus Bilder holen
Walter Ebert1.9K views
HTTPS + Let's Encrypt by Walter Ebert
HTTPS + Let's EncryptHTTPS + Let's Encrypt
HTTPS + Let's Encrypt
Walter Ebert1.8K views
WordPress-Themes mit Twig entwickeln by Walter Ebert
WordPress-Themes mit Twig entwickelnWordPress-Themes mit Twig entwickeln
WordPress-Themes mit Twig entwickeln
Walter Ebert2.9K views
Mehr Performance für WordPress - WPFra by Walter Ebert
Mehr Performance für WordPress - WPFraMehr Performance für WordPress - WPFra
Mehr Performance für WordPress - WPFra
Walter Ebert2.7K views
Sinn und Unsinn von SSL by Walter Ebert
Sinn und Unsinn von SSLSinn und Unsinn von SSL
Sinn und Unsinn von SSL
Walter Ebert2.4K views

Recently uploaded

How to think like a threat actor for Kubernetes.pptx by
How to think like a threat actor for Kubernetes.pptxHow to think like a threat actor for Kubernetes.pptx
How to think like a threat actor for Kubernetes.pptxLibbySchulze1
5 views33 slides
hamro digital logics.pptx by
hamro digital logics.pptxhamro digital logics.pptx
hamro digital logics.pptxtupeshghimire
9 views36 slides
Marketing and Community Building in Web3 by
Marketing and Community Building in Web3Marketing and Community Building in Web3
Marketing and Community Building in Web3Federico Ast
14 views64 slides
IETF 118: Starlink Protocol Performance by
IETF 118: Starlink Protocol PerformanceIETF 118: Starlink Protocol Performance
IETF 118: Starlink Protocol PerformanceAPNIC
394 views22 slides
Building trust in our information ecosystem: who do we trust in an emergency by
Building trust in our information ecosystem: who do we trust in an emergencyBuilding trust in our information ecosystem: who do we trust in an emergency
Building trust in our information ecosystem: who do we trust in an emergencyTina Purnat
109 views18 slides
ATPMOUSE_융합2조.pptx by
ATPMOUSE_융합2조.pptxATPMOUSE_융합2조.pptx
ATPMOUSE_융합2조.pptxkts120898
24 views70 slides

Recently uploaded(9)

How to think like a threat actor for Kubernetes.pptx by LibbySchulze1
How to think like a threat actor for Kubernetes.pptxHow to think like a threat actor for Kubernetes.pptx
How to think like a threat actor for Kubernetes.pptx
LibbySchulze15 views
Marketing and Community Building in Web3 by Federico Ast
Marketing and Community Building in Web3Marketing and Community Building in Web3
Marketing and Community Building in Web3
Federico Ast14 views
IETF 118: Starlink Protocol Performance by APNIC
IETF 118: Starlink Protocol PerformanceIETF 118: Starlink Protocol Performance
IETF 118: Starlink Protocol Performance
APNIC394 views
Building trust in our information ecosystem: who do we trust in an emergency by Tina Purnat
Building trust in our information ecosystem: who do we trust in an emergencyBuilding trust in our information ecosystem: who do we trust in an emergency
Building trust in our information ecosystem: who do we trust in an emergency
Tina Purnat109 views
ATPMOUSE_융합2조.pptx by kts120898
ATPMOUSE_융합2조.pptxATPMOUSE_융합2조.pptx
ATPMOUSE_융합2조.pptx
kts12089824 views
The Dark Web : Hidden Services by Anshu Singh
The Dark Web : Hidden ServicesThe Dark Web : Hidden Services
The Dark Web : Hidden Services
Anshu Singh5 views

WordPress-Templates mit Twig erstellen - PHPUGFFM