特定のコンテンツタイプのpage.tpl.phpをオーバーライドしたいと思いました。私はこれらのことを試しましたが、何もうまくいきません。
page--article.tpl.php
page--node--article.tpl.php
page--node--type--article.tpl.php
page--node-type--article.tpl.php
page--type--article.tpl.php
しかし、特定のノードを番号でターゲティングした場合、つまりpage--node--8.tpl.php
うまくいきました。おもう page--article.tpl.php
は機能するはずでしたが、なぜ機能しないのかわかりません。
名前を間違えているか教えてください。そして、どうすればそのようなことをデバッグできますか? Develモジュールを使用できると聞きましたが、何も知りません。正しい方向に少しヒントをいただければ幸いです。
前もって感謝します
あなたのテンプレートがこれを処理できることを確認する必要があります...私のために働くコードスニペットをここに得ました:
http://drupal.org/node/1089656#comment-442679
<?php
function themeName_preprocess_page(&$vars, $hook) {
if (isset($vars['node'])) {
// If the node type is "blog_madness" the template suggestion will be "page--blog-madness.tpl.php".
$vars['theme_hook_suggestions'][] = 'page__'. $vars['node']->type;
}
}
?>
キャッシュをクリアして([管理]> [サイトの構成]> [パフォーマンス])、Drupalが新しいファイルを「認識」し、デフォルトではなくこれを使用するようにしました。
こちらをご覧ください キャッシュされたデータの消去
また、前処理フックを追加する必要がある場合があります(私はD7を自分で使用していません。5/ 6だけです。これは少し変更されたと思います。) この投稿Drupal Stack Exchange 詳細を示しているようです
私は同じ問題に出くわしました。
not
ページ--recipe.tpl.php
もちろん、これは「レシピ」と呼ばれるコンテンツタイプです。
常にキャッシュをクリア...
/ admin/config/development/performanceに移動し、キャッシュのクリアボタンをクリックします。バックエンドの構造を変更していて、期待どおりに表示されない場合は、最初に行う必要があります。
そうでなければあなたはほとんどそれを正しく持っていました
コンテンツタイプテンプレートのテーマを設定できます。
ステップ1.たとえば、コンテンツタイプを作成します。私のコンテンツタイプは「fullwidthpage」です。
ステップ2. page.tpl.phpをコピーし、テンプレートフォルダーのpage--fullwidthpage.tplに名前を変更します。
ステップ3.このコードをtemplate.phpに追加します
function <strong>YOUR_THEME_NAME_HERE</strong>_preprocess_page(&$variables) {
if (isset($variables['node']->type)) {
// If the content type's machine name is "my_machine_name" the file
// name will be "page--my-machine-name.tpl.php".
$variables['theme_hook_suggestions'][] = 'page__' . $variables['node']->type;
}
}
変更することを忘れないでくださいYOUR_THEME_NAME_HERE
したがって、達成しようとしていることに応じて、役立つCSSのトリックがいくつかあるかもしれません。
たとえば、特定のノードタイプのCSSルールをオーバーライドするには、そのノードタイプのページに"node-type-[TYPE]"
(つまり、.node-type-article
)のボディクラスがあることに注意してください。
その後、次のようにCSSをオーバーライドできます。
body.node-type-article #selector {}
私はこれが古い質問であることを知っていますが、他の人がここに到着した場合、drupal 7でコンテンツタイプをオーバーライドする方法は次のとおりです
node --contenttype。tpl
基本ページとは異なる場合は、コンテンツタイプの特定のノードテンプレートを上書きする必要があります。これをチェックしてください:
http://api.drupal.org/node/1908
このページの下で、node.tpl.phpページにあるアイテムをコピーして貼り付け、必要に応じて上書きします。 $ nodeでノードにアクセスできます
記事のテンプレートは次のようになります。
node--article.tpl.php
これが作成されたら、キャッシュがクリアされていることを確認してください。