404エラーページのカスタムテンプレート


12

ここに簡単な質問があります!page.tplを使用する代わりに、404エラーページのカスタムテンプレートを使用するようにテーマを設定する方法は?

回答:


10

次の手順を実行します:

  1. Panelsモジュールを使用して新しいページを作成します(ページを空にするか、コンテンツを挿入します)

  2. admin / config / system / site-informationで、デフォルト404(not found)ページを新しいページに設定します

  3. そのページのテンプレートファイルを上書きします(page--error.tpl.php)

  4. 不要な領域をすべて削除し、コードを配置します


5
また、パネルを使用する必要さえありません。ページまたは最も単純な「基本ページ」ノードを処理するモジュールも同様です。
モウォ

2
404を作成するのに貢献モジュールが必要なのはなぜですか?
MrUpsidown

1
基本ページなどのノードを使用する際の問題は、検索結果やその他のコンテンツ関連リストに表示されることであり、これは望ましくありません。
ルービー

27

この議論からの別のソリューションはパネルや他のカスタムモジュールなしで機能します。

テーマフォルダーでtemplate.phpこのコードを見つけて記述します。YOURTHEMEテーマの名前に置き換えます:

function YOURTHEME_preprocess_page(&$vars) {
  $header = drupal_get_http_header('status'); 
  if ($header == '404 Not Found') {     
    $vars['theme_hook_suggestions'][] = 'page__404';
  }
}

404が発生するたびpage--404.tpl.phpに使用されます。テンプレートファイル名に「__」ではなく「-」を忘れずに入れてください。


page--404.tpl.phpファイルを作成したばかりの場合は、必ずキャッシュをクリアしてください。
ブレイクエリクソン

403の場合、$ header == '403 Forbidden'。
ヘンリー

これはモジュールでは機能しないようで、モジュールフォルダー内のテンプレートは上書きされません。YOURMODULE_preprocess_page(&$ vars)関数で同じことを行う方法は?
マトイユ

3

ページ(ノード)の作成を伴わないカスタマイズされた404ページが必要な場合は、customerrorモジュールを使用します。

Drupalに404ページがある場合、検索結果やビューのリストに表示されます。

customerrorモジュールを使用する場合、テーマフォルダーにページ--customerror.tpl.phpを作成することでテンプレートをオーバーライドできます。新しいテンプレートファイルを作成した後、キャッシュをフラッシュすることも忘れないでください。


それは良さそうに見えましたが、リダイレクトモジュールを使用している人にとっても、一緒にうまく再生できないようです。リダイレクトが示したものの上にページを表示するcustomerrorを取得することはできませんでした。
evanmcd 14年

1
これらの問題が発生することなく、リダイレクトモジュールとカスタムエラーモジュールを同時に使用します。両方のモジュールの設定ページを見ると、カスタムエラー機能に加えて、customerrorにも、粗雑なインターフェースではあるがリダイレクトを管理する機能があるように見えます。リダイレクトを使用している場合(およびOPが使用していない場合)、customerrorリダイレクト設定の使用を避けるだけで、問題は発生しません。
alexkb 14年

0

テーマベースに存在するかもしれない慣習を仮定せずに、質問は最終的にどのテンプレートファイルを使用するかを確実に知ることができるかどうかです...

手順は次のとおりです。

  1. 基本的なベースを作成し、必要に応じて呼び出します。
  2. そのページを404応答admin / config / system / site-informationに割り当てます
  3. theme_debugモードを有効にします。
  4. アドレスバーに愚かなURLを入力します。
  5. 最初に作成されたページに到着します
  6. ソースとテンプレートの提案を見ると、次のようなものが得られます。ここに画像の説明を入力してください

  7. それは簡単で、変更する前処理ファイルやtemplate.phpはありません。

私自身は、byでマークされたものを選びました。フルフレームの写真と背中へのリンクだけで裸のものが欲しかったからです。


404エラー用に作成した基本ページもコンテンツページとして検索結果に表示されるようになりました。
ルービー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.