Das Child-Theme-Dilemma

Torsten Landsiedel
Torsten LandsiedelWebworker um Hamburg
Das Child-Theme-
Dilemma
WordCamp Cologne 2015
Torsten Landsiedel
Hallo!
Torsten Landsiedel
WordPress-Webworker
Moderator im Supportforum
Mitglied im Redaktionsteam de.w.org
Translation Contributor und Editor
Co-Orga WP Meetup Hamburg
Co-Orga WordCamp Hamburg
@zodiac1978
Child-Themes-Nutzung
Wer hat schon mal Child-Themes genutzt?
Child-Themes-Nutzung
Warum?
Child-Theme-Probleme
Sicherheit
Erweiterungen
Geschwindigkeit
Sicherheitsprobleme
Eltern-Theme
search.php (mit
Sicherheitslücke)
Child-Theme
search.php (mit
Sicherheitslücke)
Eltern-Theme
search.php (ohne
Sicherheitslücke)
Child-Theme
search.php (mit
Sicherheitslücke)
Update
Überschreibt
Kein Update!Überschreibt
Das Child-Theme-Dilemma
Erweiterungsmöglichkeiten
Pluggable Functions:
if ( ! function_exists( 'theme_special_nav' ) ) {
function theme_special_nav() {
// Do something.
}
}
Aber Achtung!
Jetzt muss der Code selber gewartet werden!
Fehlende
Erweiterungsmöglichkeiten
Framework-Theme + Kauf-Child-Theme?
WordPress.org-Theme + Child-Theme?
Wohin mit den eigenen Anpassungen?
Es gibt keine Grandchild-Themes :(
Fehlende
Erweiterungsmöglichkeiten
Warum sollte es keine Grandchild-Themes geben?
Fehlende
Erweiterungsmöglichkeiten
This idea of releasing advanced child themes just creates
the same problem child themes were meant to solve:
upgradability.
– Justin Tadlock
http://justintadlock.com/archives/2010/08/16/frameworks-parent-child-
and-grandchild-themes
Performance-Probleme
Viele Child-Themes nutzen @import
@import url(../parent-theme/style.css);
Ein @import verhindert paralleles Laden
in allen Browsern.
http://www.stevesouders.com/blog/2009/04/09/dont-use-import/
Lösung:
Style de-registrieren und Parent- und Child-Styles neu
registrieren und enqueuen
function twentytwelve_child_scripts() {
wp_deregister_style( 'twentytwelve-style' );
wp_register_style( 'twentytwelve-style',
get_template_directory_uri() . '/style.css' );
wp_enqueue_style( 'twentytwelve-child-style',
get_stylesheet_uri(), array( 'twentytwelve-style' ) );
}
add_action( 'wp_enqueue_scripts', 'twentytwelve_child_scripts', 11 );
Performance-Probleme
Noch einfacher:
Parent Style enqueuen. Fertig. Funkioniert dann, wenn
get_stylesheet (und nur das) im Parent genutzt wird.
// Faster than @import
add_action( 'wp_enqueue_scripts', 'my_child_theme_scripts' );
function my_child_theme_scripts() {
wp_enqueue_style( 'parent-theme-css', get_template_directory_uri() .
'/style.css' );
}
Performance-Probleme
Performance-Probleme
Neues Problem:
Viele Themes sind dafür leider nicht gebaut.
Stylesheet sind hart codiert in header.php:
<link rel="stylesheet" type="text/css" media="all"
href="<?php bloginfo( 'stylesheet_url' ); ?>" />
(Ältere Elmastudio-Themes machen das leider auch …)
Performance-Probleme
Oder das Theme ist inkompatibel zu Child-Themes
gebaut (durch Nutzung von get_stylesheet_directory()
im Eltern-Theme z.B.)
Oder das de-registrieren ist etwas komplizierter:
wp_enqueue_style( 'base_styles',
get_template_directory_uri() . '/css/base.css' );
wp_enqueue_style( 'responsive_styles',
get_template_directory_uri() . '/css/mobile.css' );
wp_enqueue_style( 'ie_styles',
get_template_directory_uri() . '/css/ie.css' );
Performance-Probleme
Komplizierter für Anfänger:
alles raus und in richtiger Reihenfolge wieder rein ...
Performance-Probleme
Justin Tadlocks geniale Lösung im Eltern-Theme:
function my_enqueue_styles() {
/* If using a child theme, auto-load the parent theme style. */
if ( is_child_theme() ) {
wp_enqueue_style( 'parent-style',
trailingslashit( get_template_directory_uri() ) . 'style.css' );
}
/* Always load active theme's style.css. */
wp_enqueue_style( 'style', get_stylesheet_uri() );
}
add_action( 'wp_enqueue_scripts', 'my_enqueue_styles' );
http://justintadlock.com/archives/2014/11/03/loading-parent-styles-for-child-themes
Hey Torsten!
Trink’ mal einen Schluck Wasser.
Sprich nicht zu schnell.
Und frag’ mal, ob alle mitkommen.
:)
Child-Theme-Probleme
Sicherheit
Erweiterungen
Geschwindigkeit ✓
Idee 1: Child Theme Lite
“Child themes from theme developers should be nothing
more than a stylesheet and a few functions.”
– Justin Tadlock
http://justintadlock.com/archives/2010/08/16/frameworks-parent-child-and-grandchild-themes
Idee 1: Child Theme Lite
Child Theme darf nur functions.php und
style.css enthalten.
Alle Änderungen am Theme werden nur
per Hook oder Filter gemacht.
Das passiert ausschließlich per Plugin.
Das Child-Theme bleibt updatefähig.
Idee 1: Child Theme Lite
Problem:
Wieviele Themes bieten so etwas an?
Idee 2: Child Theme Template Check
Jede Template-Datei im Theme bekommt eine
Versionsnummer im Header.
@version 1.0.0
Überprüfung der Versionsnummer per Plugin
(oder noch besser per WordPress-Core).
Unterscheide aufzeigen per wp_text_diff().
Idee 2: Child Theme Template Check
DEMO!
Child Theme Template Check
Voilá!
Child Theme Template Check
Child Theme Template Check
https://github.com/Zodiac1978/tl-template-checker
- This is a Twitter opportunity! -
Child-Theme-Probleme
Sicherheit ✓
Erweiterungen (✓)
Geschwindigkeit ✓
● Ist Werkzeuge der richtige Ort, oder wäre Design der bessere
Ort für den Menüpunkt?
● Issue auf Github eröffnen:
https://github.com/Zodiac1978/tl-template-checker/issues
Mitmachen? Gerne!
Danke für euer Feedback!
Diskussion!
Fragen? Gegenmeinungen? Alternative Lösungen?
Theme-Shop/Theme-Entwickler und
Interesse an der Umsetzung?
Lasst uns darüber sprechen!
@zodiac1978
http://torstenlandsiedel.de/kontakt
Danke für eure Zeit!
Kommt gut nach Hause! :)
1 von 33

Recomendados

WordCamp Köln - Childthemes – was ist das und wie kann ich das selbst nutzen? von
WordCamp Köln - Childthemes – was ist das und wie kann ich das selbst nutzen?WordCamp Köln - Childthemes – was ist das und wie kann ich das selbst nutzen?
WordCamp Köln - Childthemes – was ist das und wie kann ich das selbst nutzen?frankstaude
1.7K views23 Folien
Contact Form 7 - Pflicht und Kür von
Contact Form 7 - Pflicht und KürContact Form 7 - Pflicht und Kür
Contact Form 7 - Pflicht und KürTorsten Landsiedel
14.6K views19 Folien
The Child Theme Dilemma (EN) von
The Child Theme Dilemma (EN)The Child Theme Dilemma (EN)
The Child Theme Dilemma (EN)Torsten Landsiedel
1.8K views34 Folien
Wordpress Template Workshop von
Wordpress Template WorkshopWordpress Template Workshop
Wordpress Template Workshopphillipgroschup
45.1K views42 Folien
Mythen der WordPress-Sicherheit (Barcamp Koblenz 2015) von
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 Folien
Die Zeit der Passwörter ist abgelaufen von
Die Zeit der Passwörter ist abgelaufenDie Zeit der Passwörter ist abgelaufen
Die Zeit der Passwörter ist abgelaufenJoachim Hummel
2.1K views20 Folien

Más contenido relacionado

Destacado

Sicher bloggen mit WordPresse - CMS absichern von
Sicher bloggen mit WordPresse - CMS absichernSicher bloggen mit WordPresse - CMS absichern
Sicher bloggen mit WordPresse - CMS absichernSven Trautwein
2.1K views24 Folien
Facebook Marketing | Global Pages & Parent Child - Die Lösung von Facebook fü... von
Facebook Marketing | Global Pages & Parent Child - Die Lösung von Facebook fü...Facebook Marketing | Global Pages & Parent Child - Die Lösung von Facebook fü...
Facebook Marketing | Global Pages & Parent Child - Die Lösung von Facebook fü...Hutter Consult AG
19.5K views50 Folien
7 SEO Einsteiger-Tipps [SEODAY 2014, Felix Beilharz] von
7 SEO Einsteiger-Tipps [SEODAY 2014, Felix Beilharz]7 SEO Einsteiger-Tipps [SEODAY 2014, Felix Beilharz]
7 SEO Einsteiger-Tipps [SEODAY 2014, Felix Beilharz]Felix Beilharz ✓
6K views49 Folien
Die ersten Schritte mit Google+ von
Die ersten Schritte mit Google+Die ersten Schritte mit Google+
Die ersten Schritte mit Google+beebop media
99.5K views19 Folien
State of the Word 2015, WordCamp US von
State of the Word 2015, WordCamp USState of the Word 2015, WordCamp US
State of the Word 2015, WordCamp USphotomatt
366.9K views120 Folien
Kevin Indig - SEO and Growth Hacking von
Kevin Indig - SEO and Growth HackingKevin Indig - SEO and Growth Hacking
Kevin Indig - SEO and Growth HackingKevin Indig
1.9K views103 Folien

Destacado(12)

Sicher bloggen mit WordPresse - CMS absichern von Sven Trautwein
Sicher bloggen mit WordPresse - CMS absichernSicher bloggen mit WordPresse - CMS absichern
Sicher bloggen mit WordPresse - CMS absichern
Sven Trautwein2.1K views
Facebook Marketing | Global Pages & Parent Child - Die Lösung von Facebook fü... von Hutter Consult AG
Facebook Marketing | Global Pages & Parent Child - Die Lösung von Facebook fü...Facebook Marketing | Global Pages & Parent Child - Die Lösung von Facebook fü...
Facebook Marketing | Global Pages & Parent Child - Die Lösung von Facebook fü...
Hutter Consult AG19.5K views
7 SEO Einsteiger-Tipps [SEODAY 2014, Felix Beilharz] von 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]
Die ersten Schritte mit Google+ von beebop media
Die ersten Schritte mit Google+Die ersten Schritte mit Google+
Die ersten Schritte mit Google+
beebop media99.5K views
State of the Word 2015, WordCamp US von photomatt
State of the Word 2015, WordCamp USState of the Word 2015, WordCamp US
State of the Word 2015, WordCamp US
photomatt366.9K views
Kevin Indig - SEO and Growth Hacking von 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 von 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 von 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
SEO Day 2016: Perfekte Ladezeiten und SEO-Hosting für Speed-Freaks von 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 von 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 a Das Child-Theme-Dilemma

Arbeiten mit Childthemes von
Arbeiten mit ChildthemesArbeiten mit Childthemes
Arbeiten mit ChildthemesKirstenSchelper
2.9K views26 Folien
Actions und Hooks im Theme. Super, total falsch, notwendiges Übel... von
Actions und Hooks im Theme. Super, total falsch, notwendiges Übel...Actions und Hooks im Theme. Super, total falsch, notwendiges Übel...
Actions und Hooks im Theme. Super, total falsch, notwendiges Übel...Monika Thon-Soun
1.8K views17 Folien
WordPress Plugins und Themes übersetzbar machen - WP Camp 2012 Berlin von
WordPress Plugins und Themes übersetzbar machen - WP Camp 2012 BerlinWordPress Plugins und Themes übersetzbar machen - WP Camp 2012 Berlin
WordPress Plugins und Themes übersetzbar machen - WP Camp 2012 BerlinDavid Decker
1.6K views32 Folien
WordPress Themes – ein Rundumschlag von
WordPress Themes – ein RundumschlagWordPress Themes – ein Rundumschlag
WordPress Themes – ein RundumschlagCaspar Hübinger
2.7K views26 Folien
Entwicklungsautomatisierung von
EntwicklungsautomatisierungEntwicklungsautomatisierung
EntwicklungsautomatisierungNecara GmbH
223 views35 Folien
Mit WordPress durchstarten von
Mit WordPress durchstartenMit WordPress durchstarten
Mit WordPress durchstartenFrank Schmittlein
66 views32 Folien

Similar a Das Child-Theme-Dilemma(16)

Actions und Hooks im Theme. Super, total falsch, notwendiges Übel... von Monika Thon-Soun
Actions und Hooks im Theme. Super, total falsch, notwendiges Übel...Actions und Hooks im Theme. Super, total falsch, notwendiges Übel...
Actions und Hooks im Theme. Super, total falsch, notwendiges Übel...
Monika Thon-Soun1.8K views
WordPress Plugins und Themes übersetzbar machen - WP Camp 2012 Berlin von David Decker
WordPress Plugins und Themes übersetzbar machen - WP Camp 2012 BerlinWordPress Plugins und Themes übersetzbar machen - WP Camp 2012 Berlin
WordPress Plugins und Themes übersetzbar machen - WP Camp 2012 Berlin
David Decker1.6K views
WordPress Themes – ein Rundumschlag von Caspar Hübinger
WordPress Themes – ein RundumschlagWordPress Themes – ein Rundumschlag
WordPress Themes – ein Rundumschlag
Caspar Hübinger2.7K views
Entwicklungsautomatisierung von Necara GmbH
EntwicklungsautomatisierungEntwicklungsautomatisierung
Entwicklungsautomatisierung
Necara GmbH223 views
Genesis Framework - WordCamp Deutschland 2011 Köln von David Decker
Genesis Framework - WordCamp Deutschland 2011 KölnGenesis Framework - WordCamp Deutschland 2011 Köln
Genesis Framework - WordCamp Deutschland 2011 Köln
David Decker1.8K views
Wie? Mein WordPress-Theme geht auch barrierefrei! von Sylvia Egger
Wie? Mein WordPress-Theme geht auch barrierefrei!Wie? Mein WordPress-Theme geht auch barrierefrei!
Wie? Mein WordPress-Theme geht auch barrierefrei!
Sylvia Egger4.5K views
PHP Templating Engines by Martin Sotirov - 20160217 von wpmeetupka
PHP Templating Engines by Martin Sotirov - 20160217PHP Templating Engines by Martin Sotirov - 20160217
PHP Templating Engines by Martin Sotirov - 20160217
wpmeetupka405 views
Devops ohne root von cusy GmbH
Devops ohne rootDevops ohne root
Devops ohne root
cusy GmbH814 views
Childthemes 2 von pixolin
Childthemes 2Childthemes 2
Childthemes 2
pixolin1.6K views
Jtl_connect jtl_shop_evo_template_best_practices von JTL-Software
Jtl_connect jtl_shop_evo_template_best_practicesJtl_connect jtl_shop_evo_template_best_practices
Jtl_connect jtl_shop_evo_template_best_practices
JTL-Software737 views
WordPress Meetup Karlsruhe Feb 2016 von wpmeetupka
WordPress Meetup Karlsruhe Feb 2016WordPress Meetup Karlsruhe Feb 2016
WordPress Meetup Karlsruhe Feb 2016
wpmeetupka384 views
WordPress CMS - WebMontag Chemnitz Oktober 2011 von David Decker
WordPress CMS - WebMontag Chemnitz Oktober 2011WordPress CMS - WebMontag Chemnitz Oktober 2011
WordPress CMS - WebMontag Chemnitz Oktober 2011
David Decker1.3K views

Más de Torsten Landsiedel

Das Health Check Plugin in der Praxis von
Das Health Check Plugin in der PraxisDas Health Check Plugin in der Praxis
Das Health Check Plugin in der PraxisTorsten Landsiedel
261 views29 Folien
UX-Probleme mit dem neuen Block-Editor (Gutenberg) von
UX-Probleme mit dem neuen Block-Editor (Gutenberg)UX-Probleme mit dem neuen Block-Editor (Gutenberg)
UX-Probleme mit dem neuen Block-Editor (Gutenberg)Torsten Landsiedel
1.6K views30 Folien
Oh, no! DSGVO. von
Oh, no! DSGVO.Oh, no! DSGVO.
Oh, no! DSGVO.Torsten Landsiedel
1.3K views24 Folien
WordPress kaputt machen von
WordPress kaputt machenWordPress kaputt machen
WordPress kaputt machenTorsten Landsiedel
546 views33 Folien
Werde Übersetzer! Werde Translation Editor! von
Werde Übersetzer!  Werde Translation Editor!Werde Übersetzer!  Werde Translation Editor!
Werde Übersetzer! Werde Translation Editor!Torsten Landsiedel
214 views23 Folien
Die schmutzige Seite von WordPress von
Die schmutzige Seite von WordPressDie schmutzige Seite von WordPress
Die schmutzige Seite von WordPressTorsten Landsiedel
2.4K views23 Folien

Más de Torsten Landsiedel(17)

UX-Probleme mit dem neuen Block-Editor (Gutenberg) von Torsten Landsiedel
UX-Probleme mit dem neuen Block-Editor (Gutenberg)UX-Probleme mit dem neuen Block-Editor (Gutenberg)
UX-Probleme mit dem neuen Block-Editor (Gutenberg)
Torsten Landsiedel1.6K views
The Child Theme Dilemma (EN) - Milano Edition von Torsten Landsiedel
The Child Theme Dilemma (EN) - Milano EditionThe Child Theme Dilemma (EN) - Milano Edition
The Child Theme Dilemma (EN) - Milano Edition
Torsten Landsiedel2.8K views
Umgang mit Frustration im Open-Source-Projekt WordPress von Torsten Landsiedel
Umgang mit Frustration im Open-Source-Projekt WordPressUmgang mit Frustration im Open-Source-Projekt WordPress
Umgang mit Frustration im Open-Source-Projekt WordPress
Torsten Landsiedel721 views
Wie ich durch Support und Übersetzung ein (besserer) Entwickler geworden bin von Torsten Landsiedel
Wie ich durch Support und Übersetzung ein (besserer) Entwickler geworden binWie ich durch Support und Übersetzung ein (besserer) Entwickler geworden bin
Wie ich durch Support und Übersetzung ein (besserer) Entwickler geworden bin
Torsten Landsiedel1.5K views
WordPress absichern - WP Camp 2012 in Berlin von Torsten Landsiedel
WordPress absichern - WP Camp 2012 in BerlinWordPress absichern - WP Camp 2012 in Berlin
WordPress absichern - WP Camp 2012 in Berlin
Torsten Landsiedel3.3K views

Das Child-Theme-Dilemma