すべてのPanelsカスタムページに特定のtpl.phpファイルを使用したい。
「Panels Everywhere」モジュールを使用しようとすると、いくつかのフォーマットの問題が発生するので、代替手段が必要です。
Template_preprocess_page関数を使用して、Panelsページのカスタムtplを追加できます。方法は次のとおりです。
/**
* Implements template_preprocess_page().
*/
function MODULEORTHEMENAME_preprocess_page(&$variables) {
if (module_exists('page_manager') && count(page_manager_get_current_page())) {
$variables['theme_hook_suggestions'][] = 'page__panels';
}
}
次に、カスタムPanelsページ用のpage--panels.tpl.phpを作成します。
質問はすべてのパネルページに影響を与えることなので、@ arshacnの答えは正しいですが、別個のtplが必要な場合、またはいくつかにのみ影響を与える場合は、どのcontentypeでもこれを実行します。
// ads theme-hook-nodetype-suggestions
function MYMODULEORMYTHEME_preprocess_page(&$vars, $hook) {
if (isset($vars['node']->type)) {
$vars['theme_hook_suggestions'][] = 'page__' . $vars['node']->type;
}
}
これにより、「page--yourcontentype.tpl.php」の提案が追加され、必要なすべてのcontentypeに対してページ--yourcontentype.tpl.phpが作成されます。tplファイルをサブテーマテンプレートフォルダーに配置します。