15

特定のコンテンツ タイプに対して page.tpl.php をオーバーライドしたかったのです。私はこれらのことを試しましたが、何もうまくいきません。

  1. page--article.tpl.php
  2. page--node--article.tpl.php
  3. page--node--type--article.tpl.php
  4. page--node-type--article.tpl.php
  5. page--type--article.tpl.php

しかし、特定のノードを番号でターゲットにすると、page--node--8.tpl.php正常に機能しました。page--article.tpl.php機能するはずだったと思いますが、なぜ機能しないのかわかりません。

呼び方が間違っていたら教えてください。どうすればそのようなものをデバッグできますか。Devel モジュールを使用できると聞いたことがありますが、それについては何も知りません。正しい方向へのわずかなヒントをいただければ幸いです。

前もって感謝します

4

8 に答える 8

19

テンプレートがこれを処理できることを確認する必要があります...ここで私のために働いたコードスニペットを手に入れました:

http://drupal.org/node/1089656#comment-4426790

<?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;
  }
}
?>
于 2013-04-24T16:57:48.990 に答える
4

Drupalが新しいファイルを「認識」し、デフォルトではなくこれを使用するように、キャッシュをクリアすることを覚えていますか([管理]> [サイト構成]> [パフォーマンス]の下にあります)。

キャッシュデータの消去についてはこちら

また、前処理フックを追加する必要がある場合があります (私自身は D7 を使用していません。5 /6 だけです。これはわずかに変更されていると思います)。

于 2012-06-25T17:24:53.917 に答える
1

常にキャッシュをクリア...

/admin/config/development/performance に移動し、キャッシュのクリア ボタンをクリックします。バックエンドの構造に変更を加え、期待どおりに表示されない場合は、最初に行う必要があります。

そうでなければ、あなたはほとんどそれを正しく持っていました

  1. ページ -- コンテンツ タイプ名.tpl.php

コンテンツ タイプ テンプレートのテーマを設定できます。

于 2014-03-30T22:02:09.750 に答える
0

これは古い質問であることは知っていますが、他の人がここに到着した場合、drupal 7 でコンテンツ タイプをオーバーライドする方法は次のようになります

node-- contenttype .tpl

于 2013-03-01T20:27:46.567 に答える
0

基本ページとは異なる場合は、コンテンツ タイプの特定のノード テンプレートを上書きする必要があります。これをチェックしてください:

http://api.drupal.org/node/19080

このページの下に、node.tpl.php ページにある項目をコピーして貼り付け、必要に応じて上書きします。$node で具体的にノードにアクセスできます

記事のテンプレートは次のようになります。

node--article.tpl.php

これが作成されたら、キャッシュをクリアして、これが機能することを確認してください。

于 2013-04-24T18:43:44.130 に答える