0

独自のテーマを作成しました。template.php ファイルには、次のコードがあります。

function mytheme_preprocess_page(&$variables) {
    if(isset($variables['node'])){
        if($variables['node']->type === 'sports'){
            $variables['theme_hook_suggestions'][] = 'page__node__sports';
        }
    }
}

また、テーマのテンプレート ディレクトリにpage_ node _sports.tpl.php ファイルがあり、キャッシュをクリアしました。ただし、page_ node _sports.tpl.php テンプレートは使用されません。いくつかのデバッグを行って、preprocess_page 関数の先頭に echo ステートメントを貼り付けました。それが画面に表示されたので、関数が実行されていることがわかりました。しかし、テンプレートの提案は機能していません。関数内の if ステートメントも削除し、$variables['theme_hook_suggestions'] = ... 行だけを残しましたが、まだ灘です。

何がうまくいかないのですか?

4

2 に答える 2

2

テーマ フォルダに page.tpl.php も追加しましたか? 提案は、元のテンプレートも存在する場合にのみ機能します。

http://adaptivethemes.com/page-template-suggestions-per-node-typeも参照してください

于 2011-04-20T14:20:33.437 に答える
1

理解した。行のテンプレート名は:

$variables['theme_hook_suggestions'][] = 'page__node__sports';

アンダースコアが必要ですが、実際の.tpl.phpファイルには代わりにハイフンが必要です。

于 2011-04-20T14:44:08.007 に答える