ページごとにヘッダー、サイドバー、フッター部分だけ変更する

WordPressで構築したサイトで、ページによってはヘッダー部分だけ変えたいとか、サイドバーだけ変えたいとか、フッターだけを変えたいという場合もあるかと思います。

例えば、ある特定のページでは別のjsファイルを読み込ませたいといった場合です。

しかし、WordPressで構築する際には、一般的にヘッダー、サイドバー、フッターのパーツごとにテンプレートを作成し、そのパーツテンプレートをページ全体のテンプレートに読み込むという形式なので、基本的にすべてのページで共通のヘッダー、サイドバー、フッターになります。

従って、ヘッダーのパーツテンプレートの一部を変更すれば、その変更はすべてのページに反映されてしまいます。

このように、すべてのページに影響させず、ページによって各パーツを使い分けるには、いろいろな方法があるようなのですが、このページでは、以下の要領で変更する方法を取り上げてみたいと思います。

1、変更したい内容を記述した新たなパーツテンプレートを作成
2、新たに作成したパーツテンプレートを呼び出す別のテンプレートを作成
3、テンプレートタグの変更
4、テンプレート名の指定

以上の要領は、固定ページであっても投稿記事の個別ページでも共通なのですが、個別ページでは新たにプラグインをインストールしなければ機能しませんので別途プラグインをインストール必要があります。

なので、固定ページのパーツを変更する場合と、個別ページのパーツを変更する場合とを分けてみていきたいと思います。

固定ページのパーツを変更する場合

ここでは、固定ページのあるページのヘッダー部だけ変更する場合を例にとって記載していきます。

変更したい内容を記述した新たなパーツテンプレートを作成

まず、現状使用しているヘッダー部のパーツテンプレート「header.php」があるかと思いますが、この中の一部だけ変更したいという場合は、ローカルでこの「header.php」をコピーしたファイルを新たに作成します。

その際のファイルの名称ですが、「header.php」と区別するために、ここでは仮に「header-01.php」とします。

あとでテンプレートタグの引数で呼び出すパーツテンプレートを記述しなければなりませんが、その際、「header-01」のハイフンをアンダーバー(_)でやってみたのですが、呼び出せなかったので、ここは必ずハイフンにします。

そして、この「header-01.php」をテキストエディタなどで開いて、適宜、変更したい箇所を書き換えます。

そして、サーバ上の[themes]フォルダ内の任意の箇所にアップロードします。

新たに作成したパーツテンプレートを呼び出す別のテンプレートを作成

固定ページのテンプレートとして、すでに「index.php」もしくは「page.php」が存在すると思います。

これらのすでに使用しているテンプレートで呼び出しているヘッダー部のパーツテンプレートを上で作成した「header-01.php」に変更してやる必要があるので、これら「index.php」もしくは「page.php」以外に新たにテンプレートファイルを作成する必要があります。

これも、ヘッダーだけ変更するのであれば、元の「index.php」もしくは「page.php」ファイルをコピーし、新たにファイルを作成します。

コピーしたファイル名は、任意のもので構いません。

ここでは仮に、「template-01.php」とします。

この「template-01.php」ファイルもサーバ上の[themes]フォルダ内の任意の箇所にアップロードします。

テンプレートタグの変更

上記2つのファイルはアップロード済みなので、WordPressの管理画面のメニューの[外観]→[テーマ編集]を開くと、画面右側に、新たに作成した2つのファイル、「header-01.php」と「template-01.php」が加わっているのがわかるかと思います。

このうち、「template-01.php」をクリックし編集領域に展開します。

そして、その中に以下テンプレートタグが見つかるかと思います。

<?php get_header(); ?>

括弧の中はおそらく空欄か、別のパーツテンプレート名が記載されていると思いますが、この括弧の中に変更したいパーツテンプレートのファイル名のハイフン右を引数として以下のように記述します。

<?php get_header('01'); ?>

この際、シングルクォ―テーション(’ ‘)を記入しないで、01とだけ記入したら呼び出せなかったので、ここは必ずシングルクォ―テーション(’ ‘)で囲みます。

テンプレート名の指定

次に、「template-01.php」ファイルの一番先頭に以下の記述を付け加え、[ファイルを更新]ボタンをクリックします。

<?php
/*
Template Name: 任意の名称
*/
?>

これで、固定ページの編集画面を開くと、画面右側の[ページ属性]の[テンプレート]のプルダウンメニューをクリックすると、上記で記述した「任意の名称」のテンプレートが選択肢として追加されていることを確認します。

これで、ページによって、ヘッダーを変更したテンプレートを使い分けることができるようになりました。

ページ属性

個別ページのパーツを変更する場合

個別ページの場合は、上記固定ページで説明してきた

1、変更したい内容を記述した新たなパーツテンプレートを作成
2、新たに作成したパーツテンプレートを呼び出す別のテンプレートを作成
3、テンプレートタグの変更

までは同様の工程ですが、上記固定ページのように、編集画面に新たに作成したテンプレートを選択できる仕様になっていないため、プラグインの「Single Post Template」をインストールする必要があります。

「Single Post Template」のインストール方法や使い方、そして、4以降のテンプレート名の指定の仕方等の詳細は、「投稿の個別ページごとにテンプレートを変える「Single Post Template」」を参照ください。