目次
💡はじめに:なぜPHPを学ぶ必要があるの?
「WordPressのテーマを作ってみたいけど、PHPがよく分からない…」
そんなあなたに向けて、この記事ではテーマ制作に必要な最低限のPHP知識を、なるべく理解できるようにやさしく解説します。
WordPressは、
- デザイン(HTML+CSS)
 - 機能(PHP)
で成り立っています。 
HTMLやCSSが「見た目」を作るのに対し、PHPは「中身を呼び出す役割」を持っています。
投稿タイトルや本文、日付などの情報は、すべてPHPがデータベースから取り出して表示しているのです。
ちなみに、独自のテーマが作れるようになると仕事の幅が広がるだけじゃなく、作り置きしておいて販売という流れも可能です。本業が忙しい人におススメの副業となっています。
WordPressテーマ制作に必要なPHPの基礎7つ
① PHPタグの基本構文
PHPコードはHTMLの中にこう書きます👇
<?php echo "こんにちは"; ?>
<?php:PHPの開始タグ?>:PHPの終了タグecho:文字や変数を出力する
🔸例:
<p><?php echo "Hello WordPress!"; ?></p>
このようにHTMLの中でPHPを書くのがWordPressテーマの基本です。
② 変数:データを入れる箱
変数とは、データを一時的に保存する箱のようなものです。
<?php
$name = "太郎";
echo $name; // 太郎
?>
💡変数名の先頭には必ず $ をつけます。
$名前付きの箱 = ”中に入れるもの”;で覚えるとわかりやすいと思います。

③ 関数:よく使う処理をまとめたもの
関数とは「何かをして結果を返す仕組み」です。
<?php
function say_hello() {
    echo "こんにちは!";
}
say_hello();
?>
簡単に言うと、関数(function say_hello() { }の中身を、say_hello();で呼び出します。
細かく言うと、function say_hello() { ... } は「関数を定義する」部分で、say_hello(); は「関数を呼び出す(実行する)」部分です。
波かっこ { } の中に「実行したい処理(中身)」を入れます。
イメージで言うと…
関数は「お弁当箱🍱」のようなもの。
function say_hello() { ... }でお弁当箱を用意して、中身({ }内に実行したい処理)を詰める。say_hello();でそのお弁当を開けて食べる(実行する)。
| 概念 | 役割 | 
|---|---|
function 関数名() { ... } | 関数を定義する(処理をまとめておく) | 
関数名(); | 関数を呼び出す(実行する) | 
WordPressでも、関数を多用します。
たとえば👇
| 関数 | 内容 | 
|---|---|
get_header(); | ヘッダーを読み込む | 
get_footer(); | フッターを読み込む | 
the_title(); | 投稿タイトルを表示する | 
the_content(); | 投稿本文を表示する | 
④ 条件分岐(if文)
「もし〇〇なら〜する」という処理を行う文法です。
<?php
if (is_home()) {
    echo "トップページです";
} else {
    echo "トップページではありません";
}
?>
WordPressでは、「トップページだけ特別な表示をしたい」ときなどに使います。
⑤ 繰り返し処理(ループ)
WordPressの特徴のひとつが「ブログ記事や投稿を自動で一覧表示できる」こと。
この仕組みを実現しているのが、ループ(Loop) と呼ばれるPHPの繰り返し処理です。
💬 ループって何?
「サイトにある複数の投稿(記事)を、1件ずつ順番に取り出して表示する」ためのしくみです。
たとえば、
投稿A → 投稿B → 投稿C …
というように、記事を自動で繰り返し出力します。
普通のHTMLでは、記事を追加するたびに <div> や <h2> を増やす必要がありますが、ループを使えば1つの書き方で何件でも自動で表示できます✨
💡 WordPressのループの基本構文
WordPressでは以下のように書きます:
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
    <article>
        <h2><?php the_title(); ?></h2>
        <div><?php the_content(); ?></div>
    </article>
<?php endwhile; endif; ?>
少し長く見えますが、落ち着いて読んでみましょう。
🧩 コードの意味を分解
| コード部分 | 意味 | 
|---|---|
if (have_posts()) : | 投稿があるか確認する。 「記事が1件でもある?」というチェック。  | 
while (have_posts()) : the_post(); | 投稿がある限り、1件ずつ取り出して処理する。 | 
the_title(); | 投稿のタイトルを表示する。 | 
the_content(); | 投稿の本文を表示する。 | 
endwhile; | 繰り返しを終える。 | 
endif; | 投稿がなかったときの条件を終了する。 | 
🧠 イメージで理解してみよう
たとえるなら、WordPressのデータベースは「記事の入った本棚」です。
ループはその本棚から「1冊ずつ取り出して読んで、画面に並べる」役割を持っています📚
📁 本棚(データベース)
 ├ 投稿1 → 表示!
 ├ 投稿2 → 表示!
 ├ 投稿3 → 表示!
 └ 投稿がなくなるまで繰り返し!
🪄 ループを使うとできること
- 投稿一覧ページ(ブログトップ)
 - カテゴリー別の一覧
 - 「新着記事」や「おすすめ記事」一覧
など、複数の記事をまとめて見せたいページは、ほぼすべてループで作られています。 
🧰 応用の一例:タイトルだけ一覧で出したいとき
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
    <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
<?php endwhile; endif; ?>
👉 これで「タイトル一覧リンクだけ」をシンプルに出せます。
ニュース一覧やサイドバーにぴったりです。
🚫 投稿がない場合の書き方
記事が1件もない場合、何も表示されないと寂しいので、こう書けます👇
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
    <h2><?php the_title(); ?></h2>
<?php endwhile; else: ?>
    <p>まだ投稿がありません。</p>
<?php endif; ?>
ループを理解すると、テーマが動き出す!
| ポイント | 内容 | 
|---|---|
| 目的 | 投稿を1つずつ取り出して表示する | 
| よく使う関数 | have_posts()、the_post()、the_title()、the_content() | 
| 応用例 | 投稿一覧、カテゴリー別一覧、新着記事表示など | 
| メリット | 投稿を増やしても自動で反映される | 
ループを理解できれば、WordPressのテーマが“静的なページ”から“動くサイト”に変わります✨
ここが「WordPress開発の入り口」と言っても過言ではありません。
⑥ テンプレートタグ:WordPress特有の関数たち
WordPressには、便利な関数(テンプレートタグ)がたくさん用意されています👇
| 用途 | 関数 | 
|---|---|
| サイトタイトル | bloginfo('name'); | 
| 投稿タイトル | the_title(); | 
| 投稿本文 | the_content(); | 
| 投稿URL | the_permalink(); | 
| 投稿日 | the_time('Y/m/d'); | 
🔸例:
<h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
⑦ テンプレートの分割と読み込み
WordPressでは、共通パーツを分けて管理します。
| ファイル名 | 役割 | 
|---|---|
| header.php | ヘッダー部分 | 
| footer.php | フッター部分 | 
| sidebar.php | サイドバー | 
| index.php | メインページ | 
| single.php | 投稿ページ | 
| page.php | 固定ページ | 
これをPHPで呼び出します👇
<?php get_header(); ?>
<main>メインコンテンツ</main>
<?php get_footer(); ?>
こうすることで、全ページで同じヘッダー・フッターを共有できます。
ステップアップの学び方
- HTML+CSSの構造を理解する
→ どこにPHPを埋めるかをイメージ - 静的サイトをWordPress化する練習
→header.phpとfooter.phpに分割
→ 投稿部分をthe_content()に置き換える - テンプレート階層 を理解する
→ WordPressがどのページでどのファイルを使うか知る 
🌱 まとめ:PHPは「仕組みを理解」すれば十分!
| 覚えるべきこと | 実際の使い方 | 
|---|---|
| PHPタグ | HTMLの中でPHPを書く | 
| echo | 出力する | 
| 変数・関数 | 値を保存・呼び出す | 
| if文 | 条件で分岐する | 
| ループ | 投稿を繰り返し表示する | 
| テンプレートタグ | WordPress専用の関数 | 
| get_header/get_footer | 共通部分を呼び出す | 
✨おわりに:まずは“動かしてみる”のが近道!
PHPは、いきなり完璧に覚えなくても大丈夫。
まずは「HTMLに少しPHPを混ぜてみる」くらいから始めてみましょう。
WordPressのテンプレート階層はこんな感じでありますが、下の引用元から飛んで確認してください。
ちゃんと公式ページです。

引用元:https://ja.wordpress.org/team/handbook/theme-development/basics/template-hierarchy/
HTML&CSSを先に学んだ方が理解も早いし、流れもいいです。
(まれに独学でも一流まで上り詰める方がいます。が、自分は凡人なので、2年独学の末、スクールに頼りました。一年目でプログラミングやらデザインやらどっちつかずでウロウロしすぎて半分心折れてましたが。)
独学は挫折率高いので基本的にはスクールをおススメしています。
が、独学したい派(過去の自分がそうでした)のために、無料カウンセリングの有意義な使い方を書いています。業界のあるあるコラム(就職とか、求められる人材とか)もあるので時間があるときにでも読んでいただけるとありがたいです。結構フレッシュな業界地図だと個人的には思ってます。

	

