09:共通するヘッダーとフッターをパーツ化して読み込む
公開日:2018年11月04日
更新日:2018年11月05日
WordPressは共通部分をモジュール化(パーツ化)することができます。これにより共通部分の修正や更新が楽になります。
WordPressは以下のモジュールテンプレートとモジュール読み込み用関数が用意されています。
パーツ | モジュールテンプレート名 | モジュール読み込み関数 |
---|---|---|
ヘッダー | header.php | get_header() |
フッター | footer.php | get_footer() |
サイドバー | sidebar.php | get_sidebar() |
検索フォーム | searchform.php | get_search_form() |
コメント | comments.php | get_comments_template() |
カスタムテンプレート(好きなファイル名をつけたモジュールテンプレート)を作成することができます。
カスタムテンプレート名 | カスタムテンプレート読み込み関数 |
---|---|
example.php | get_template_part(‘example’) |
content-example.php | get_template_part(‘content’, ‘example’) |
カスタムテンプレートは半角英数で好きなファイル名をつけることができます。作成したカスタムテンプレートを読み込む際は「get_template_part();」を使用し引数にカスタムテンプレート名を指定します。ファイル名に「-(ハイフン)」を使用した場合は、ハイフンを区切りにファイル名を分割して引数に指定します。
変更前
index.php
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title><?php bloginfo('name'); ?><?php wp_title('|'); ?></title> <link rel="stylesheet" href="<?php echo get_stylesheet_uri(); ?>" /> </head> <body> <div class="container"> <div class="header"> <div class="inner"> <h1><a href="<?php echo home_url(); ?>"><?php bloginfo('name'); ?></a></h1> <p><?php bloginfo('description'); ?></p> <p><?php echo get_template(); ?></p> <div class="theme_img"><img src="<?php echo get_template_directory_uri(); ?>/img/image.png" alt="テーマ内画像" /></div> </div><!-- /.inner --> </div><!-- /.header --> <div class="global_nav"> <div class="inner"> <?php wp_nav_menu(); ?> </div><!-- /.inner --> </div><!-- /.nav --> <div class="content"> <div class="main"> メインコンテンツ </div><!-- /.main --> <div class="sidebar"> サイドバーコンテンツ </div><!-- /sidebar --> </div><!-- /.content --> <div class="footer"> <div class="inner"> <div class="copyright"> © <?php echo date('Y'); ?> <a href="<?php echo home_url(); ?>"><?php bloginfo('name'); ?></a>. </div> </div><!-- /.inner --> </div><!-- /.footer --> </div><!-- /.container --> </body> </html>
変更後
「index.php」の前半部分をヘッダーモジュール「header.php」、後半部分をフッターモジュール「footer.php」にします。
「header.php」と「footer.php」を作成し共通部分をカート&ペーストしましょう。
header.php
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title><?php bloginfo('name'); ?><?php wp_title('|'); ?></title> <link rel="stylesheet" href="<?php echo get_stylesheet_uri(); ?>" /> </head> <body> <div class="container <?php echo $temp_name; ?> <?php echo $slug_name; ?>"> <div class="header"> <div class="inner"> <h1><a href="<?php echo home_url(); ?>"><?php bloginfo('name'); ?></a></h1> <p><?php bloginfo('description'); ?></p> <p><?php echo get_template(); ?></p> <div class="theme_img"><img src="<?php echo get_template_directory_uri(); ?>/img/image.png" alt="テーマ内画像" /></div> </div><!-- /.inner --> </div><!-- /.header --> <div class="global_nav"> <div class="inner"> <?php wp_nav_menu(); ?> </div><!-- /.inner --> </div><!-- /.nav -->
index.php
<?php get_header(); ?> <div class="content"> <div class="main"> メインコンテンツ </div><!-- /.main --> <?php get_sidebar(); ?> </div><!-- /.content --> <?php get_footer();
footer.php
<div class="footer"> <div class="inner"> <div class="copyright"> © <?php echo date('Y'); ?> <a href="<?php echo home_url(); ?>"><?php bloginfo('name'); ?></a>. </div> </div><!-- /.inner --> </div><!-- /.footer --> </div><!-- /.container --> </body> </html>
sidebar.php
<div class="sidebar"> サイドバーコンテンツ </div><!-- /.sidebar -->
ヘッダー・フッターモジュールの読み込み
「index.php」の上部で「ヘッダーモジュール」を読み込みます。
<?php get_header(); ?>
<div class=”content”>
「index.php」の下部で「フッターモジュール」を読み込みます。
<?php
get_footer();
サイドバーモジュールの読み込み
「index.php」の任意の位置で「サイドバーモジュール」を読み込みます。
<?php get_sidebar(); ?>
公開サイトで固定ページを表示して、モジュール化しても元と同じ表示結果になっていることを確認します。
欠席者対応:wireframe03
同じタグのコンテンツ
同じカテゴリーのコンテンツ