8. Extensibility
Pluggable Functions:
if ( ! function_exists( 'theme_special_nav' ) ) {
function theme_special_nav() {
// Do something.
}
}
Attention:
Now you have to maintain the code!
9. Missing extensibilities
Framework Theme + Premium Child Theme?
WordPress.org Theme + Child Theme?
Where to put the customizations?
There are no Grandchild Themes :(
11. Missing extensibilities
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-an
d-grandchild-themes
12. Update of Parent Theme
Without any problems?
It depends …
filter/actions removed?
CSS classes changed?
Markup changed?
Paths changed?
13. Performance problems
Many Child Themes are using @import
@import url(../parent-theme/style.css);
But @import stops parallel loading
in all browsers.
http://www.stevesouders.com/blog/2009/04/09/dont-use-import/
15. Even simpler:
Enqueue parent styles. Done! Just works if
get_stylesheet is used (and just this) in the parent
theme.
// 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 problems
16. New problem:
Many themes are not build that way.
Hardcoded stylesheets in the header.php for example:
<link rel="stylesheet" type="text/css" media="all"
href="<?php bloginfo( 'stylesheet_url' ); ?>" />
Performance problems
17. Performance problems
Or the theme is not compatible with using a child
theme.
Or you have to de-register everything to preserve the
correct order.
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' );
22. Idea 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
23. Idea 1: Child Theme Lite
Child Theme just contains functions.php
and style.css.
All changes should just be made with hooks
and filters.
This would be made within a plugin.
Child Theme remains update-ability.
24. Idea 1: Child Theme Lite
Problem:
How many themes do something like that?
25. Idea 2: Child Theme Check
Every template file in the theme is getting a version
number in the file header.
@version 1.0.0
Check of the version number via plugin
(or even better via WordPress core).
Differences between files can be shown via
wp_text_diff().
31. Spread the word!
The new default theme is using it, too!
https://github.com/WordPress/twentyseventeen/issues/72
32. ● Italian Translation is waiting for you!
https://translate.wordpress.org/locale/it/default/wp-plugins/chi
ld-theme-check
● Found a bug? Just open an issue on Github:
https://github.com/Zodiac1978/tl-template-checker/issues
● Help me to get this as a recommendation in the Theme Check Plugin
(https://de.wordpress.org/plugins/theme-check/):
https://github.com/WordPress/theme-check/issues/115
Conribute? Great!