Mezi dalšími novinkami, které přináší WordPress 4.7, jsou i dvě nové funkce a nový filter, určené pro vývojáře šablon.
Speciálně pro vytváření child themes, jsou určeny dvě nové funkce get_theme_file_uri a get_theme_file_path.
Jedním z nepostradatelných prvků, při vytváření odvozených šablon, je funkce get_template_part. Funguje poměrně jednoduše. Například:
get_template_part('page' 'content')
hledá nejprve soubor page-content.php, nejprve v child theme a pokud jej nenajde, hledá soubor v parent theme. Díky tomu, můžete jednoduše nahrazovat soubory rodičovské šablony.
U css a js souborů to zatím bylo tak, že jste je museli nejprve odregistrovat a následně vložit váš upravený soubor.
Get_theme_file_uri přináší do vývoje šablon, přesně ten mechanismus, jako u get_template_part.
wp_enqueue_script( 'my-script', get_theme_file_uri( 'js/my-script.js' ) );
Můžeme tak velmi lehce například v child šabloně nahradit javascriptový soubor, v němž potřebujeme udělat úpravy.
Navíc, na rozdíl od get_template_directory_uri, je možné jako parametr funkce zadat samotný soubor. Navíc je zde filtr theme_file_uri, který umožní manipulovat s vkládanými soubory pomocí pluginů.
Ekvivalentem k této nové funkci je get_theme_file_path.
{$type}_template_hierarchy filter
Přestože můžete s hierarchií šablony manipulovat pomocí filtru template_include, v novém WordPressu budou přidány nové filtry, jenž umožní manipulovat s hierarchií šablony na úrovni konkrétního typu souboru šablony.
Pokud například budete chtít změnit hierarchii v archívech, vypisující posty podle data, můžete postupovat takto:
add_filter( 'date_template_hierarchy', function( array $templates ) { $year = get_query_var( 'year' ); array_unshift( $templates, "year-{$year}.php" ); return $templates;} );V případě, že nemáte přesnou představu o fungování hierarchie v šablonách, raději se těmto úpravám vyhněte.
Filtry, jenž můžete použít:
embed_template_hierarchy404_template_hierarchysearch_template_hierarchyfrontpage_template_hierarchyhome_template_hierarchytaxonomy_template_hierarchyattachment_template_hierarchysingle_template_hierarchypage_template_hierarchysingular_template_hierarchycategory_template_hierarchytag_template_hierarchyauthor_template_hierarchydate_template_hierarchyarchive_template_hierarchypaged_template_hierarchyindex_template_hierarchy