Drupal 6 Custom Content Type Page Theme

If you ever wondered how to change the page.tpl.php for a custom content type you’ve found out that by default Drupal 6 doesn’t know how to do it.

It’s “fixed” easily by adding the following code:

     * Override or insert PHPTemplate variables into the templates.
    function phptemplate_preprocess_page(&$vars) {
      // Add per content type pages
      if (isset($vars['node'])) {
        // Add template naming suggestion. It should alway use hyphens.
        // If node type is "custom_news", it will pickup "page-custom-news.tpl.php".
        $vars['template_files'][] = 'page-'. str_replace('_', '-', $vars['node']->type);