Dalam file template.php saya untuk tema saya, saya telah mencoba yang berikut:
function media_preprocess_page(&$vars, $hook) {
if (isset($vars['node']))
{
// If the node type is "blog" the template suggestion will be "html--blog.tpl.php".
$vars['theme_hook_suggestions'][] = 'html__'.$vars['node']->type;
// If the node type is "blog" the template suggestion will be "page--blog.tpl.php".
$vars['theme_hook_suggestions'][] = 'page__'.$vars['node']->type;
// If the node id is "33" the template suggestion will be "page--33.tpl.php".
$vars['theme_hook_suggestions'][] = 'page__'.$vars['node']->nid;
}
//Create page suggestion for first part of url-alias
$url_alias = drupal_get_path_alias($_GET['q']);
$parts = explode('/', $url_alias);
$vars['theme_hook_suggestions'][] = 'page__'.$parts[0].'__alias';
}
Ini berfungsi untuk halaman - nodetype.tpl.php, tetapi tidak untuk html - nodetype.tpl.php
Anda mungkin bertanya mengapa Anda perlu mengganti template html.tpl.php per jenis node. Itu karena ada markup yang saya tidak ingin sertakan untuk node khusus ini.