質問: 特定の表示モードのテンプレートを提供するにはどうすればよいですか? テンプレートを使用して検索結果表示モードのテーマを設定します。テンプレートファイルにnode-article--search-result.tpl.phpという名前を付けるとうまくいくというのが頭の中にありましたが、それは明らかに間違っています。node--article.tpl.phpとこのチェック$ view_modeの範囲内で実行できることはわかっていますが、これはテンプレートにしたくない他のすべてのビューモードでは扱いにくいものです。アイデア?
回答: ノードの前処理関数にテーマフックの提案を追加すると、次のようなトリックが行われます。_function mymodule_preprocess_node(&$vars) { if ($vars['node']->type == 'article' && $vars['view_mode'] == 'search_result') { $vars['theme_hook_suggestions'][] = 'node__article__search_result'; } } _キャッシュをクリアすると、テンプレートファイル名にnode--article--search-result.tpl.phpを使用できるようになります。nb。代わりに関数mytheme_preprocess_node()を呼び出すことで、テーマのtemplate.phpファイルでこれを行うこともできます。