【完全保存版】HTMLからWordPressテーマを作る方法|初心者も実務者も安心のステップ解説

✅この記事でわかること

  • HTML/CSSで作ったサイトをWordPressテーマにする手順と構造
  • functions.phpの役割やループ処理の基礎知識
  • 実務案件でよくある失敗とその回避方法

はじめに|なぜ「テーマ化」が必要なのか?

WordPressはテーマという仕組みによって、サイトのデザインとレイアウトをコントロールしています。

「静的HTMLをそのままコピペ」ではWordPressは動かず、PHPで分割・関数化・動的化する必要があります

この記事では、HTMLファイル一式を持っている状態から、WordPressテーマとして完成させるまでの流れをステップごとに解説。学習者にも実務者にも役立つ内容です。


【前提条件】

  • HTMLファイル一式(index.html、style.css、images/ など)がローカルにある
  • WordPressローカル環境(例:Local, MAMP, XAMPPなど)が動作している
  • WordPressの基本操作(インストール・テーマ切り替え)ができる

STEP 1:WordPressテーマの基本構造を理解しよう

WordPressは /wp-content/themes/テーマ名/ にあるファイルを読み込みます。

✅ 最低限必要なファイル

ファイル役割
style.cssテーマ情報・CSS
index.phpメインテンプレート(投稿一覧など)
functions.php機能追加(CSS読込・メニュー登録など)

📝 推奨追加ファイル:

header.php, footer.php, page.php, single.php, screenshot.png


STEP 2:HTMLをベースにテーマフォルダを作成

2.1 テーマフォルダを作成

/wp-content/themes/mytheme/ という新しいフォルダを作成し、HTMLの中身をコピーします。


2.2 

style.css

を編集

/*
Theme Name: My Custom Theme
Author: あなたの名前
Description: HTMLをWordPressに変換したテーマ
Version: 1.0
*/

📌 ここで書いたテーマ名が「外観 → テーマ」で表示される名前になります。


STEP 3:HTMLの構造をWordPress化する(PHP化)

3.1 

index.php

 に HTML の内容をコピー

元の index.html のコードを index.php に貼り付けてスタート。


3.2 共通パーツの分割

WordPressでは「共通部分をPHPで分ける」のが基本。

header.php

(例)

<!DOCTYPE html>
<html <?php language_attributes(); ?>>
<head>
  <meta charset="<?php bloginfo('charset'); ?>">
  <title><?php wp_title(); ?></title>
  <?php wp_head(); ?>
</head>
<body <?php body_class(); ?>>
<header>
  <h1><?php bloginfo('name'); ?></h1>
</header>

footer.php

(例)

<footer>
  <p>© <?php echo date('Y'); ?> MySite.</p>
</footer>
<?php wp_footer(); ?>
</body>
</html>

3.3 

index.php

で共通パーツを呼び出す

<?php get_header(); ?>

<main>
  <h2>トップページのメインコンテンツ</h2>
</main>

<?php get_footer(); ?>



STEP 4:functions.phpでCSSやJSを読み込む

<?php
function mytheme_enqueue_scripts() {
  wp_enqueue_style('main-style', get_template_directory_uri() . '/css/style.css');
  wp_enqueue_script('main-script', get_template_directory_uri() . '/js/main.js', [], false, true);
}
add_action('wp_enqueue_scripts', 'mytheme_enqueue_scripts');

// メニューの有効化
register_nav_menus([
  'global' => 'グローバルメニュー',
]);
?>

📝 HTML内で直接CSSやJSを読み込まず、WordPress流に登録しましょう。


STEP 5:投稿のループ(the_loop)を理解する

WordPress最大の特徴は投稿が動的に増えること。

それを表示するのが「ループ処理(the Loop)」です。

index.php

に投稿ループを追加(例)

<?php if (have_posts()) : ?>
  <?php while (have_posts()) : the_post(); ?>
    <article>
      <h2><?php the_title(); ?></h2>
      <div><?php the_content(); ?></div>
    </article>
  <?php endwhile; ?>
<?php else : ?>
  <p>記事がありません</p>
<?php endif; ?>

STEP 6:その他テンプレートを作って拡張する

ファイル名用途
single.php投稿の個別ページ表示
page.php固定ページの表示
404.php404エラーページ
archive.phpアーカイブやカテゴリー一覧
search.php検索結果ページ

これらも index.php を元に複製し、適宜編集すればOKです。


STEP 7:テーマを有効化して表示確認

  1. WordPress管理画面 > 外観 > テーマ → 作ったテーマを「有効化」
  2. トップページや投稿ページを確認
  3. デザイン崩れや読み込み漏れがないかチェック

STEP 8:よくあるトラブルとその対処法

問題原因と対処
CSSが反映されないwp_enqueue_style()で正しいパスを指定しているか確認
画像が表示されない相対パスを get_template_directory_uri() に置き換える
メニューが表示されないregister_nav_menus()とwp_nav_menu()が正しく設定されているか確認
投稿が表示されないthe_loopの構文エラー or 投稿が存在しない

まとめ|HTMLをWordPressテーマにすることで得られること

  • 更新しやすいサイト管理が可能になる
  • クライアントでもノーコードで投稿ができるようになる
  • 1つのデザインを再利用・拡張可能なテーマ化できる

テーマ化の作業は最初は難しく感じるかもしれませんが、慣れればCMS開発の基礎スキルとして大きな武器になります。

(Visited 1 times, 1 visits today)