Roa run dev

WordPressテンプレートタグに書き換える(HTML→PHP)【基本】

●目次

    WordPressオリジナルテーマ開発において、HTMLをPHPに書き換える作業は、動的なコンテンツ管理を実現するための重要なステップです。

    本記事では、WordPressテンプレートタグを使って静的なHTMLファイルを動的にする方法を解説します。
    特に、the_title()bloginfo()などのテンプレートタグを活用して、ページタイトルやサイト情報を動的に表示する手法に焦点を当てます。

    WordPressのテンプレートタグに書き換え編(HTML→PHP)

    まず、WordPressテーマでは通常のHTMLファイルをPHPに置き換えます。
    これにより、投稿タイトルやサイト名などの情報をWordPressの管理画面から簡単に編集できるようになります。
    例えば、以下のようなHTMLコードがあるとします。

    変更前のHTMLコード

    HTML(index.html)
    <!DOCTYPE html>
    <html lang="ja">
    <head>
      <meta charset="UTF-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <title>HTML&CSS+JS</title>
      <link rel="stylesheet" href="./style.css">
      <link rel="stylesheet" href="./asset/css/reset.css">
      <link rel="stylesheet" href="./asset/css/layout.css">
      <link rel="stylesheet" href="./asset/css/component.css">
    </head>
    <body>
      <header class="header">
        <a href="/" class="headerLogo">
          HTML&CSS+JS
        </a>
        <nav class="headerNav">
          <ul>
            <li>
              <a href="/">ホーム</a>
            </li>
            <li>
              <a href="/service">サービス内容</a>
            </li>
            <li>
              <a href="/news">新着ニュース</a>
            </li>
            <li>
              <a href="/contact">お問い合わせ</a>
            </li>
          </ul>
        </nav>
      </header>
      <div class="wrapper">
        <div class="cover--top">
          <div class="coverBox">
            <h1 class="heading01 top">
              HTML&CSS+JavaScript
            </h1>
          </div>
        </div>
        <div class="container col_1_2">
          <!-- 省略 -->
        </div>
      </div>
      <footer class="footer">
        <div class="footerBar">
          <p>
            <small>HTML&CSS+JavaScript © 2021</small>
          </p>
        </div>
      </footer>
      <script src="./asset/js/layout.js"></script>
    </body>
    </html>
    

    WordPress用に書き換えたコード

    この書き換えによって、ページタイトルはWordPressの投稿タイトルに自動的に反映され、サイト名も動的に表示されるようになります。

    PHP(index.php)
    <!DOCTYPE html>
    <html lang="ja">
    <head>
      <meta charset="UTF-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <title><?php the_title(); ?> | <?php bloginfo('name'); ?></title>
      <link rel="stylesheet" href="<?php echo get_template_directory_uri(); ?>/style.css">
      <link rel="stylesheet" href="<?php echo get_template_directory_uri(); ?>/asset/css/reset.css">
      <link rel="stylesheet" href="<?php echo get_template_directory_uri(); ?>/asset/css/layout.css">
      <link rel="stylesheet" href="<?php echo get_template_directory_uri(); ?>/asset/css/component.css">
    </head>
    <body>
      <header class="header">
        <a href="<?php echo home_url(); ?>/" class="headerLogo">
          HTML&CSS+JS
        </a>
        <nav class="headerNav">
          <ul>
            <li>
              <a href="<?php echo home_url(); ?>/">ホーム</a>
            </li>
            <li>
              <a href="<?php echo home_url(); ?>/service">サービス内容</a>
            </li>
            <li>
              <a href="<?php echo home_url(); ?>/news">新着ニュース</a>
            </li>
            <li>
              <a href="<?php echo home_url(); ?>/contact">お問い合わせ</a>
            </li>
          </ul>
        </nav>
      </header>
      <div class="wrapper">
        <div class="cover--top">
          <div class="coverBox">
            <h1 class="heading01 top">
              <?php bloginfo('name'); ?>
            </h1>
          </div>
        </div>
        <div class="container col_1_2">
          <!-- 省略 -->
        </div>
      </div>
      <footer class="footer">
        <div class="footerBar">
          <p>
            <small><?php bloginfo('name'); ?> © 2021</small>
          </p>
        </div>
      </footer>
      <script src="<?php echo get_template_directory_uri(); ?>/asset/js/layout.js"></script>
    </body>
    </html>

    WordPress化で使用したテンプレートタグ

    以下は、今回のWordPress化で使用したテンプレートタグの一覧です。さらに多くのテンプレートタグについて知りたい方は、こちらの記事「WordPressオリジナルテーマ開発【よく使うテンプレートタグ編】」をご参照ください。

    <?php bloginfo(); ?>

    bloginfo()は、サイトに関する基本的な情報を取得し表示するテンプレートタグです。引数を指定することで、表示する内容をカスタマイズできます。
    よく使われる引数は次の通りです:

    'name': サイトの名前(タイトル)を表示します。

    PHP
    <title><?php bloginfo('name'); ?></title>

    'description': サイトのキャッチフレーズ(サイトの説明)を表示します。

    PHP
    <p><?php bloginfo('description'); ?></p>

    <?php title(); ?>

    the_title()は、ページや投稿のタイトルを表示するテンプレートタグです。
    動的なタイトルの表示が可能になります。

    PHP
    <h1><?php the_title(); ?></h1>

    <?php echo home_url(); ?>

    home_url()は、サイトのトップページ(ホームページ)のURLを取得して表示するためのテンプレートタグです。
    WordPressのインストールディレクトリとは関係なく、サイトの公開URLを取得します。
    例えば、https://example.comがサイトのホームページのURLであれば、この関数はそのURLを返します。

    PHP
    <a href="<?php echo home_url(); ?>">ホームへ戻る</a>

    この例では、「ホームへ戻る」というリンクが、サイトのトップページ(ホームページ)へのリンクとなります。

    ディレクトリ構成の確認

    ディレクトリ構成
    wp_site_theme/
    │
    ├── asset/
    │   ├── css/
    │   │   ├── reset.css
    │   │   ├── layout.css
    │   │   └── component.css
    │   ├── js/
    │   │   ├── layout.js
    │   │   └── component.js
    │   └── images/
    │
    ├── *index.php
    ├── *style.css    
    └── screenshot.png

    まとめ

    今回の記事では、WordPressテーマ開発の初歩的な部分として、HTMLファイルの構造を整える手順を紹介しました。

    次はWordPressオリジナルテーマ開発 【ヘッダー、フッター分割編】