8. 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!
11. 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
12. 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/
13. 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
14. 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
15. 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 …)
16. 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' );
21. 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
22. 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.
23. Idee 1: Child Theme Lite
Problem:
Wieviele Themes bieten so etwas an?
24. 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().
30. ● 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!
32. 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