前回の記事でテンプレートパーツファイルについて説明しました。
本記事では前回の記事を踏まえて実際にhtmlファイルからパーツ分けしてみます。
目標
最初に準備するファイルはindex.html
です。
このファイルをPHPファイルにし、
- ヘッダー
- サイドバー
- フッター
をパーツとして分けていきます。
htmlファイル群の準備
sample
|__ css
- style.css
|__img
- dammy.png
|__ index.html
|__ style.css //テーマ登録用
練習用にhtmlファイルを載せておくので、コピーして使ってください。↓↓
phpファイルの作成
htmlファイルをphpファイルに変更します。
index.html → index.php
さらに、パーツとして分けるファイルを新規作成します。
- header.php
- footer.php
- sidebar.php
sample
|__ css
- style.css
|__img
- dammy.png
|__ index.php
|__ header.php
|__ footer.php
|__ sidebar.php
|__ style.css //テーマ登録用
パーツ分けはどこで区切るか?
ヘッダー、フッター、サイドバーをパーツ分けします。
ヘッダー
header.phpにヘッダーのコードを貼り付ける
index.phpのうち、header部分を切り取り、header.phpにそのまま貼り付けます。
index.php
<!-- ここから -->
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Sample Site</title>
<link rel="stylesheet" href="css/reset.css">
<link rel="stylesheet" href="css/style.css">
</head>
<body>
<header>
<div class="container">
<h1>WP</h1>
<ul>
<li><a href="">メニュー</a></li>
<li><a href="">メニュー</a></li>
<li><a href="">メニュー</a></li>
</ul>
</div>
</header>
<!-- ここまで切り取り -->
<div class="content">
<!-- 省略 -->
</div>
<footer>
<!-- 省略 -->
</footer>
</body>
</html>
header.php
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Sample Site</title>
<link rel="stylesheet" href="css/reset.css">
<link rel="stylesheet" href="css/style.css">
</head>
<body>
<header>
<div class="container">
<h1>WP</h1>
<ul>
<li><a href="">メニュー</a></li>
<li><a href="">メニュー</a></li>
<li><a href="">メニュー</a></li>
</ul>
</div>
</header>
コードを見てもわかるように、
ヘッダーは<header>から</header>ではなく<!DOCTYPE html>から</header>までパーツにしています。
ヘッダーとフッターとサイドバーに分けるというと<header>から</header>、<footer>から</footer>、<sidebar>から</sidebar>を切り取ると思いがちですが、実際にはどこからどこまで共通のコードなのかを意識して切り分けるので、一概に<header>から</header>….のように分けるわけではありません。
headerであれば、全ページで<!DOCTYPE html>から</header>まで共通して使用するためheader.phpとしてひとまとめにできます。sidebarやfooterにおいても考え方は同じです。
index.phpでheader.phpを読み込む
index.php
のheaderのコードがあった場所にheader.phpをパーツとして読み込みます。
index.php
<?php get_header(); ?>
<div class="content">
<!-- 省略 -->
</div>
<footer>
<!-- 省略 -->
</footer>
</body>
</html>
フッター
index.phpのうち、footer部分を切り取り、footer.phpにそのまま貼り付けます。
index.php
<?php get_header(); ?>
<div class="content">
<!-- 省略 -->
</div>
<!-- ここから -->
<footer>
<div class="container">
<p>©©️2020 WPマニュアル</p>
</div>
</footer>
</body>
</html>
<!-- ここまで切り取り -->
footer.php
<footer>
<div class="container">
<p>©©️2020 WPマニュアル</p>
</div>
</footer>
</body>
</html>
index.phpでfooter.phpを読み込む
footerのコードがあった場所にfooter.phpをパーツとして読み込みます。
index.php
<?php get_header(); ?>
<div class="content">
<!-- 省略 -->
</div>
<?php get_footer(); ?>
サイドバー
index.php
<?php get_footer(); ?>
<div class="content">
<div class="content__container">
<main id="main">
<!-- 省略 -->
</main>
<!-- ここから -->
<aside id="sidebar">
<h2>Category</h2>
<ul>
<li><a href="">category1</a></li>
<li><a href="">category2</a></li>
<li><a href="">category3</a></li>
<li><a href="">category4</a></li>
</ul>
<h2>Archive</h2>
<ul>
<li><a href="">archive1</a></li>
<li><a href="">archive2</a></li>
<li><a href="">archive3</a></li>
<li><a href="">archive4</a></li>
</ul>
</aside>
<!-- ここまで切り取り -->
</div><!-- /content__inner -->
</div>
<?php get_footer(); ?>
sidebar.php
<aside id="sidebar">
<h2>Category</h2>
<ul>
<li><a href="">category1</a></li>
<li><a href="">category2</a></li>
<li><a href="">category3</a></li>
<li><a href="">category4</a></li>
</ul>
<h2>Archive</h2>
<ul>
<li><a href="">archive1</a></li>
<li><a href="">archive2</a></li>
<li><a href="">archive3</a></li>
<li><a href="">archive4</a></li>
</ul>
</aside>
sidebarのコードがあった場所にsidebar.phpをパーツとして読み込みます。
index.php
<?php get_footer(); ?>
<div class="content">
<div class="content__container">
<main id="main" class="main">
<!-- 省略 -->
</main>
<?php get_sidebar(); ?>
</div><!-- /content__inner -->
</div>
<?php get_footer(); ?>
パーツ分けした結果
ヘッダー、フッター、サイドバーをパーツ化した結果、最終的にindex.phpのコードは以下のようになります。
<?php get_header(); ?>
<div class="content">
<div class="content__container">
<main id="main">
<article>
<a href="">
<h2>タイトル</h2>
<time>2022.06.22</time>
<img src="img/dammy.png" alt="">
</a>
</article>
<article>
<a href="">
<h2>タイトル</h2>
<time>2022.06.22</time>
<img src="img/dammy.png" alt="">
</a>
</article>
<article>
<a href="">
<h2>タイトル</h2>
<time>2022.06.22</time>
<img src="img/dammy.png" alt="">
</a>
</article>
<article>
<a href="">
<h2>タイトル</h2>
<time>2022.06.22</time>
<img src="img/dammy.png" alt="">
</a>
</article>
</main>
<?php get_sidebar(); ?>
</div><!-- /content__inner -->
</div>
<?php get_footer(); ?>
wp_head()とwp_footer()
header.php
にはwp_head、footer.php
にはwp_footerを追記していきます。
wp_head()の設置場所
</head>
の直前に<?php wp_head(); ?>
を記述します。
header.php
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Sample Site</title>
<link rel="stylesheet" href="css/reset.css">
<link rel="stylesheet" href="css/style.css">
<?php wp_head(); ?><!-- ここに追加!! -->
</head>
<body>
<header>
<div class="container">
<h1>WP</h1>
<ul>
<li><a href="">メニュー</a></li>
<li><a href="">メニュー</a></li>
<li><a href="">メニュー</a></li>
</ul>
</div>
</header>
wp_footer()の設置場所
</footer>
の直前に<?php wp_footer(); ?>
を記述します。
footer.php
<footer>
<div class="container">
<p>©©️2020 WPマニュアル</p>
</div>
</footer>
<?php wp_footer(); ?><!-- ここに追加!! -->
</body>
</html>
本記事での最終的なコード
本記事での最終的なコードをファイルごとに掲載しています。確認のためにご覧ください。
<?php get_header(); ?>
<div class="content">
<div class="content__container">
<main id="main">
<article>
<a href="">
<h2>タイトル</h2>
<time>2022.06.22</time>
<img src="img/dammy.png" alt="">
</a>
</article>
<article>
<a href="">
<h2>タイトル</h2>
<time>2022.06.22</time>
<img src="img/dammy.png" alt="">
</a>
</article>
<article>
<a href="">
<h2>タイトル</h2>
<time>2022.06.22</time>
<img src="img/dammy.png" alt="">
</a>
</article>
<article>
<a href="">
<h2>タイトル</h2>
<time>2022.06.22</time>
<img src="img/dammy.png" alt="">
</a>
</article>
</main>
<?php get_sidebar(); ?>
</div><!-- /content__container -->
</div>
<?php get_footer(); ?>
コメント