WordPressでは、サイト内の各ページをヘッダー/フッター/サイドバー/コンテンツの4つの部分に分け、コンテンツ以外の部分を各ページで共通化しています。
この共通化できるヘッダー/フッター/サイドバーを各テンプレートで出力できるよう、関数が用意されています。
目次
ヘッダーの組み込み
テンプレートに、ヘッダー部分のテンプレートを読み込みたい場合 get_header
という関数(テンプレートタグ)を使用します。
WordPressの多くのテーマでは、テンプレートの先頭に以下の記述があり、この記述で指定した位置にヘッダー部分のテンプレートが組み込まれます。
<?php get_header(); ?>
この場合読み込まれるテンプレートは、テーマ内の header.php
というテンプレートです。
任意のヘッダーの組み込み
場合によってはヘッダー部分を複数個用意して、組込先のテンプレートに応じてヘッダー部分を切り替える場合、使用しているWordpressのテーマ内に header-接尾語.php
のような名前のテンプレートを作ります。
そして、get_header
関数を以下のように記述して、組み込むテンプレートの接尾語を指定します。
<?php get_header('接尾語'); ?>
フッターの組み込み
テンプレートに、フッター部分のテンプレートを読み込みたい場合 get_footer
という関数(テンプレートタグ)を使います。
get_header
関数と同様、以下のように記述して共通のフッター部分を組み込みます。
<?php get_footer(); ?>
この場合、テーマ内の footer.php
というテンプレートの内容が、この関数の位置に読み込まれます。
任意のフッターの組み込み
フッター用テンプレートの名前に接尾語を付け、組み込み先のテンプレートの種類に応じて、フッター用テンプレートを使い分けることもできます。
たとえば、footer-index.php
というテンプレートを組み込みたい場合、組み込み先のテンプレートへ以下のように書きます。
<?php get_footer('index'); ?>
サイドバーの組み込み
テンプレートに、サイドバー部分のテンプレートを組み込みたい場合は get_sidebar
という関数(テンプレートタグ)を使います。
get_header
/ get_footer
同様、以下のように記述して全てのテンプレートに共通のサイドバーを組み込みます。
この場合、テーマ内の sidebar.php
というテンプレートの内容が、この位置に組み込まれます。
<?php get_sidebar(); ?>
任意のサイドバーの組み込み
サイドバー用テンプレートの名前に接尾語を付け、組み込み先のテンプレートの種類に応じて、サイドバー用テンプレートを使い分けることもできます。
たとえば、sidebar-index.php
というテンプレートを組み込みたい場合、組み込み先のテンプレートへ以下のように書きます。
<?php get_sidebar('index'); ?>
追加したウィジェットサイドバーの組み込み
WordPressでは register_sidebar
の関数を利用して、管理画面のウィジェットで更新ができるサイドバーウィジェットを追加することができます。
サイドバーウィジェットの追加は、functions.php
に以下の記述を行います。
if ( function_exists('register_sidebar') ) {
register_sidebar(array(
'name' => 'サイドバー1',
'id' => 'sidebar-1',
'description' => 'サイドバー1の説明を入れます。',
'class' => 's1',
'before_widget' => '<div class="widget">',
'after_widget' => '</div>',
'before_title' => '<h2>',
'after_title' => '</h2>',
));
register_sidebar(array(
'name' => 'サイドバー2',
'id' => 'sidebar-2',
'description' => 'サイドバー2の説明を入れます。',
'class' => 's2',
'before_widget' => '<div class="widget">',
'after_widget' => '</div>',
'before_title' => '<h2>',
'after_title' => '</h2>',
));
}
ウィジェットサイドバーをさらに3つ、4つと増やしていく場合、register_sidebar
の部分を増やしていくだけで増やすことが可能です。
追加したウィジェットサイドバーの出力で、追加したウィジェットを表示させる場合、テンプレートに以下のような dynamic_sidebar
関数を使って組み込みます。
<?php if ( is_active_sidebar('sidebar-1') ) : ?>
<?php dynamic_sidebar('sidebar-1'); ?>
<?php endif; ?>
検索フォームの組み込み
サイト内の検索する際のフォームは、get_search_form
という関数(テンプレートタグ)で出力するこtが可能です。
<?php get_search_form() ?>
上記の場合、searchform.php
というテンプレートがあれば、その内容が出力されますが、ない場合デフォルトの検索フォームのHTMLが出力されます。
任意のテンプレートの組み込み
get_template_part
という関数(テンプレートタグ)を使うことで、任意のテンプレートを、他のテンプレートに読み込むことができます。
関数のパラメーターは、拡張子のphpは付けずにテンプレートの名前を指定します。
たとえば以下のように記述すると、テーマに含まれる commontemplate.php
というテンプレートを組み込むことができます。
<?php get_template_part('commontemplate'); ?>
テーマディレクトリ内のサブフォルダで、この関数を使用する場合、フォルダ名を前に追加します。
例えば、parts というフォルダがテーマディレクトリ内にあり、common.php というテンプレートがそのサブフォルダにある場合、get_template_part()
を以下のように記述します。
<?php get_template_part('parts/common'); ?>