テンプレートの組み込み

テンプレートのイラスト

WordPressでは、サイト内の各ページをヘッダー/フッター/サイドバー/コンテンツの4つの部分に分け、コンテンツ以外の部分を各ページで共通化しています。

この共通化できるヘッダー/フッター/サイドバーを各テンプレートで出力できるよう、関数が用意されています。

ヘッダーの組み込み

テンプレートに、ヘッダー部分のテンプレートを読み込みたい場合 get_header という関数(テンプレートタグ)を使用します。

WordPressの多くのテーマでは、テンプレートの先頭に以下の記述があり、この記述で指定した位置にヘッダー部分のテンプレートが組み込まれます。

PHP

<?php get_header(); ?>

この場合読み込まれるテンプレートは、テーマ内の header.php というテンプレートです。

任意のヘッダーの組み込み

場合によってはヘッダー部分を複数個用意して、組込先のテンプレートに応じてヘッダー部分を切り替える場合、使用しているWordpressのテーマ内に header-接尾語.php のような名前のテンプレートを作ります。

そして、get_header 関数を以下のように記述して、組み込むテンプレートの接尾語を指定します。

PHP

<?php get_header('接尾語'); ?>

フッターの組み込み

テンプレートに、フッター部分のテンプレートを読み込みたい場合 get_footerという関数(テンプレートタグ)を使います。

get_header 関数と同様、以下のように記述して共通のフッター部分を組み込みます。

PHP

<?php get_footer(); ?>

この場合、テーマ内の footer.php というテンプレートの内容が、この関数の位置に読み込まれます。

任意のフッターの組み込み

フッター用テンプレートの名前に接尾語を付け、組み込み先のテンプレートの種類に応じて、フッター用テンプレートを使い分けることもできます。

たとえば、footer-index.php というテンプレートを組み込みたい場合、組み込み先のテンプレートへ以下のように書きます。

PHP

<?php get_footer('index'); ?>

サイドバーの組み込み

テンプレートに、サイドバー部分のテンプレートを組み込みたい場合は get_sidebar という関数(テンプレートタグ)を使います。

get_headerget_footer 同様、以下のように記述して全てのテンプレートに共通のサイドバーを組み込みます。

この場合、テーマ内の sidebar.php というテンプレートの内容が、この位置に組み込まれます。

PHP

<?php get_sidebar(); ?>

任意のサイドバーの組み込み

サイドバー用テンプレートの名前に接尾語を付け、組み込み先のテンプレートの種類に応じて、サイドバー用テンプレートを使い分けることもできます。

たとえば、sidebar-index.php というテンプレートを組み込みたい場合、組み込み先のテンプレートへ以下のように書きます。

PHP

<?php get_sidebar('index'); ?>

追加したウィジェットサイドバーの組み込み

WordPressでは register_sidebar の関数を利用して、管理画面のウィジェットで更新ができるサイドバーウィジェットを追加することができます。

サイドバーウィジェットの追加は、functions.php に以下の記述を行います。

function.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

<?php if ( is_active_sidebar('sidebar-1') ) : ?>
  <?php dynamic_sidebar('sidebar-1'); ?>
<?php endif; ?>

検索フォームの組み込み

サイト内の検索する際のフォームは、get_search_form という関数(テンプレートタグ)で出力するこtが可能です。

PHP

<?php get_search_form() ?>

上記の場合、searchform.php というテンプレートがあれば、その内容が出力されますが、ない場合デフォルトの検索フォームのHTMLが出力されます。

任意のテンプレートの組み込み

get_template_part という関数(テンプレートタグ)を使うことで、任意のテンプレートを、他のテンプレートに読み込むことができます。

関数のパラメーターは、拡張子のphpは付けずにテンプレートの名前を指定します。

たとえば以下のように記述すると、テーマに含まれる commontemplate.php というテンプレートを組み込むことができます。

PHP

<?php get_template_part('commontemplate'); ?>

テーマディレクトリ内のサブフォルダで、この関数を使用する場合、フォルダ名を前に追加します。

例えば、parts というフォルダがテーマディレクトリ内にあり、common.php というテンプレートがそのサブフォルダにある場合、get_template_part() を以下のように記述します。

PHP

<?php get_template_part('parts/common'); ?>