6

drupalフロントページnode.tplファイルをオーバーライドする方法は?いろいろやってみました

   node--front.tpl.php
   page--node--front.tpl.php
   page--front--node.tpl.php

しかし、それは機能していません。

ホームページノードを上書きするファイル名は何ですか?(私はdrupal 7で作業しています)

4

6 に答える 6

9

この関数をテーマtemplate.phpに追加できます

   function customethemename_preprocess_node ( &$vars ) {

        if ($vars["is_front"]) {
           $vars["theme_hook_suggestions"][] = "node__front";
        }  
    }

次に、ページをページングできます--front.tpl.php

それは問題を解決します

于 2012-09-04T18:29:08.653 に答える
6

そのはずpage--front.tpl.php

また、テーマの階層に前駆体があることを確認してください(例page.tpl.php

于 2012-09-05T19:51:49.953 に答える
1

コンテンツの特定のノードをフロントページに設定して、これを解決することをお勧めします。

http://www.inmotionhosting.com/support/edu/drupal-7/homepage/change-front-page

次に、特定のノードIDテンプレートを使用します。

node--[insert id here].tpl.php すなわちnode--1.tpl.php

これが機能する前に、2つのことを行う必要があります。

  1. 元のnode.tpl.phpファイルのコピーがテーマフォルダーにあることを確認してください(オーバーライドされたテンプレートファイルは、それ以外の場合は取得されません)。
  2. Drupalのキャッシュをクリアする
于 2012-09-05T01:08:17.120 に答える
0

フロントページを手動で作成する必要はありません。ビューなどでフロントページを作成し、次のフロントページとして設定するだけです。

www.yoursite.com/?q=admin/config/site-information
于 2012-09-05T13:02:40.493 に答える
0

次の手順で、Drupal7でカスタムフロントページを作成する際の問題を解決しました。

  1. ファイルを作成します:page--front.tpl.php。1つではなく2つのハイフンに注意してください。
  2. キャッシュをクリアします:構成>>開発>>パフォーマンス>>すべてのキャッシュをクリアします
于 2014-10-11T10:13:43.267 に答える
0

最善の解決策はfrontpagenidを使用することだと思います

function YOURTHEME_preprocess_node ( &$vars ) {
list(, $frontpage_nid) = explode('/', drupal_get_normal_path(variable_get('site_frontpage', 'node')));

  if ($vars['node']->nid == $frontpage_nid) {
    $vars['theme_hook_suggestions'][] = "node__frontpage";
  } 
}

なぜなら

if ($vars["is_front"]) {
    $vars["theme_hook_suggestions"][] = "node__front";
}

フロントページノードだけでなく、フロントページのすべてのノードにテーマの提案を追加します

于 2015-05-21T15:36:15.810 に答える