WordPressを本格的にカスタマイズしたいなら、PHPの基礎知識は避けて通れません。
この記事では、「WordPressカスタマイズ PHP」という観点から、WordPressとPHPの関係、実際に使われるコード、テンプレート構造などを初心者向けに解説します。
PHPとは?WordPressとの関係性を理解しよう
PHPは、サーバー上で実行されるプログラミング言語で、ユーザーのリクエストに応じて動的なコンテンツを生成します。
例えば、ブログの記事一覧を表示したり、コメントを処理したりする際にPHPが使用されます。
HTMLやCSSがウェブページの見た目を構築するのに対し、PHPはページの「動き」や「機能」を担当します。
WordPressとPHPの関係
WordPressは、PHPを基盤として構築されたコンテンツ管理システム(CMS)です。
テーマやプラグインなど、WordPressの主要な構成要素はPHPで書かれており、サイトの表示や機能の多くがPHPによって制御されています。
例えば、以下の関数は、PHPで定義されており、テーマファイル内で使用されます。
<?php get_header(); ?> //header.phpを読み込む
<?php the_content(); ?> //固定ページや投稿の本文を読み込む
PHPの基本的な構文や関数を理解することで、エラーの原因を特定しやすくなり、トラブルシューティングがスムーズに行えます。
変数と配列の基本
まずは、PHPの「変数」と「配列」を理解することで、より柔軟で効率的なサイト構築が可能になります。
PHPの変数とは?
変数は、データを一時的に保存するための「箱」のようなものです。
PHPでは、変数名の前にドル記号($
)を付けて定義します。
例えば、以下
のように使用します。この変数には文字列や数値、配列など、さまざまなデータを格納できます。
<?php
$site_name = "My Blog"; //site_nameという箱に「My Blog」という文字列を保存
echo $site_name; //site_nameの変数を表示
?>
WordPressでは、変数を活用して投稿データやユーザー情報を操作します。
例えば、グローバル変数(WordPress標準の変数)$post
を使用することで、現在表示されている投稿のタイトルや内容を取得できます。
このように、変数を適切に使用することで、新着記事を読み込むといった動的なコンテンツの表示やカスタマイズが可能になります。
PHPの配列とは?
配列は、複数の値を一つの変数に格納できるデータ構造です。PHPでは、array()
関数や短縮構文[]
を使用して配列を定義します。
例えば、以下のように記述します。
$colors = ["red", "blue", "green"];
echo $colors[0]; // red
配列には、インデックス配列(数値キー)と連想配列(文字列キー)の2種類があります。
インデックス配列では、$colors[0]
のように数値で要素にアクセスします。
連想配列では、$user = ["name" => "Taro", "age" => 30];
のようにキーを指定して値を格納し、$user["name"]
でアクセスします。
WordPressでは、配列を使用して投稿のメタデータやカスタムフィールド、設定オプションなどを管理しています。
例えば、get_post_meta()
関数は、特定の投稿に関連付けられたメタデータを配列として取得します。
これにより、複数の関連情報を効率的に扱うことができます。
まずは変数と配列を基本を理解し、WordPressのコードを少しずつ読み解けるようにしましょう!
条件分岐とループ処理
WordPress上で「条件分岐」と「ループ処理」は、多用されています。
こちらのコードも理解しましょう。
条件分岐(if文)
条件分岐は、特定の条件に応じて異なる処理を実行するための構文です。
PHPでは、if
、elseif
、else、
を使用して記述します。
if (is_front_page()) {
echo "これはトップページです。";
} else {
echo "これは他のページです。";
}
この例では、変数$score
の値に応じて異なるメッセージを表示します。
WordPressでは、条件分岐を利用して特定のページや投稿タイプに応じた表示を行うことができます。
例えば、トップページかどうかを判定するにはis_front_page()
関数を使用します。
<?php if (is_front_page()) : ?> // トップページの場合
<h1>ようこそ、当サイトへ!</h1>
<?php else : ?> // トップページ以外の場合
<h1>記事一覧</h1>
<?php endif; ?>
このように、条件分岐を活用することで、ページ毎に処理を分けることが出来ます。
ループ処理
ループ処理は、同じ処理を繰り返し実行するための構文です。
PHPでは、for
、while
、foreach
などのループ構文が用意されています。
forループ
for
ループは、回数が決まっている繰り返し処理に適しています。
<?php
for ($i = 1; $i <= 5; $i++) {
echo "カウント: $i<br>";
}
?>
この例では、1から5までの数値を順に表示します。
whileループ
while
ループは、条件が真である間、処理を繰り返します。
<?php
$count = 1;
while ($count <= 5) {
echo "カウント: $count<br>";
$count++;
}
?>
この例では、$count
が5以下の間、カウントを表示し続けます。
foreachループ
foreach
ループは、配列の各要素に対して処理を行う際に便利です。
<?php
$fruits = ["りんご", "みかん", "ぶどう"];
foreach ($fruits as $fruit) {
echo "$fruit<br>";
}
?>
この例では、配列$fruits
の各要素を順に表示します。
WordPressでの活用例
WordPressでは、ループ処理を使用して投稿の一覧を表示することが一般的です。
以下は、投稿をループ処理で表示する例です。
<?php if (have_posts()) : ?> // 投稿があるか?
<?php while (have_posts()) : the_post(); ?> // 投稿がある場合、ループ処理
<h2><?php the_title(); ?></h2> // タイトルを出力
<div><?php the_content(); ?></div> // 本文を出力
<?php endwhile; ?>
<?php else : ?> // 投稿が無い場合
<p>投稿が見つかりませんでした。</p>
<?php endif; ?>
このコードでは、have_posts()
関数で投稿があるかを確認し、the_post()
関数で投稿データを取得しています。
ループ内でthe_title()
やthe_content()
を使用して、投稿のタイトルや内容を表示します。
また、ループ内で条件分岐を組み合わせることで、特定の投稿に対して異なる処理を行うことも可能です。
例えば、投稿の順番に応じてクラスを変更する場合、以下のように記述します。
<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>
<?php if ($wp_query->current_post % 2 == 0) : ?> // 偶数番目か?
<div class="even-post">
<?php else : ?> // 奇数番目の場合
<div class="odd-post">
<?php endif; ?>
<h2><?php the_title(); ?></h2>
<div><?php the_excerpt(); ?></div>
</div>
<?php endwhile; ?>
<?php endif; ?>
この例では、$wp_query->current_post
を使用して投稿の順番を取得し、偶数番目と奇数番目で異なるクラスを適用しています。
このように、条件分岐とループ処理を組み合わせることで、柔軟な表示が可能になります。
PHP関数の定義とWordPressでの活用
関数とは?
関数は、特定の処理をまとめて名前を付けたもので、必要なときに呼び出して使用します。
これにより、同じ処理を何度も書く必要がなくなり、コードの再利用性が向上します。
関数の定義方法
PHPで関数を定義するには、function
キーワードを使用します。
WordPressでは、独自の関数をfunctions.php
ファイルに定義することで、テーマやプラグインに特定の機能を追加できます。
<?php
function greet($name) {
return "こんにちは、{$name}さん!";
}
?>
この関数は、引数として名前を受け取り、挨拶のメッセージを返します。
関数の呼び出し方
定義した関数は、その名前を使って呼び出します。
<?php
echo greet("太郎"); // 出力: こんにちは、太郎さん!
?>
関数は、引数を変えることで異なる結果を得ることができます。
引数と戻り値
関数は、引数を受け取り、処理結果を戻り値として返すことができます。
引数は関数の定義時に指定し、呼び出す際に値を渡します。
戻り値は、return
文を使って関数の外に返します。
WordPressにおける関数の活用
WordPressでは、多くの便利な関数が用意されており、テーマやプラグインの開発に活用されています。
WordPress関数の一例
the_title()
:投稿のタイトルを表示します。the_content()
:投稿の本文を表示します。get_header()
:ヘッダーのテンプレートを読み込みます。get_footer()
:フッターのテンプレートを読み込みます。is_front_page()
:現在のページがフロントページかどうかを判定します。
これらの関数を組み合わせることで、柔軟なテーマの構築が可能になります。
ショートコードの作成
ショートコードを使うと、投稿や固定ページ内に簡単にカスタム機能を挿入できます。
<?php
function show_current_year() {
return date('Y');
}
add_shortcode('current_year', 'show_current_year');
?>
このショートコードを使うと、本文中で[current_year]
と記述した場所に現在の年が表示されます。
WordPressのテンプレート階層とPHPの関係
WordPressのテンプレート階層は、PHPと密接に関連しており、サイトの各ページがどのテンプレートファイル(PHPファイル)を使用して表示されるかを決定する仕組みです。
テンプレート階層とは?
テンプレート階層とは、WordPressがリクエストされたページに対して、どのテンプレートファイルを使用するかを決定するための優先順位のルールです。
例えば、投稿ページであれば single.php
、カテゴリーアーカイブページであれば category.php
など、特定のテンプレートファイルが存在すればそれを使用し、存在しなければより汎用的なテンプレートファイルへとフォールバックします。

代表的なテンプレートファイル
- front-page.php(フロントページ)
- single.php(投稿詳細ージ)
- archive.php(カテゴリー・アーカイブ一覧)
- page.php(固定ページ)
- 404.php(エラーページ)
テンプレート階層を理解しておくと、「どのファイルを編集すれば良いのか」がすぐに分かるようになります。
PHPとの関係
WordPressのテンプレートファイルはPHPで記述されており、HTMLとPHPのコードが組み合わさっています。
これにより、動的なコンテンツの表示や条件分岐、ループ処理などが可能になります。
テンプレート階層を理解することで、どのPHPファイルを編集すれば特定のページの表示を変更できるかが明確になります。
さらに詳しい情報や図解については、以下の公式ドキュメントをご参照ください。
テンプレート階層 – Japanese Team – WordPress.org 日本語
よく使われるWordPressのPHP関数
特によく使用される関数をカテゴリ別に整理し、それぞれの概要と使い方を解説します。
投稿・ページ関連の関数
the_title()
:投稿やページのタイトルを表示します。the_content()
:投稿やページの本文を表示します。the_excerpt()
:投稿の抜粋を表示します。the_permalink()
:投稿やページのパーマリンク(URL)を表示します。get_post_meta()
:カスタムフィールドの値を取得します。
テンプレート読み込み関連の関数
get_header()
:header.php
を読み込みます。get_footer()
:footer.php
を読み込みます。get_sidebar()
:sidebar.php
を読み込みます。get_template_part()
:指定したテンプレートパーツを読み込みます。
条件分岐タグ
is_front_page()
:現在のページがフロントページかどうかを判定します。is_single()
:現在のページが単一投稿ページかどうかを判定します。is_page()
:現在のページが固定ページかどうかを判定します。is_category()
:現在のページがカテゴリーアーカイブページかどうかを判定します。is_tag()
:現在のページがタグアーカイブページかどうかを判定します。
その他の便利な関数
home_url()
:サイトのホームURLを取得します。esc_html()
:HTMLエスケープ処理を行い、出力時にHTMLコードを吐き出さないようにします。wp_enqueue_script()
:JavaScriptファイルを読み込みます。wp_enqueue_style()
:CSSファイルを読み込みます。
まとめ
WordPressでオリジナルテーマを作成したり、カスタマイズするために最低限必要なPHPの知識は以下の4点です。
- 変数や条件分岐、ループ処理など基本的なコードの理解
- WordPress特有のテーマの機能を拡張するためのfunciton.phpの理解
header.php
、footer.php
、single.php
などのテンプレート構造- よく使われるWordPress関数
なんとなく理解しているだけでもWordPressで記載されているコードの意味が読み解けるようになります。
PHPの知識を活用して、より魅力的なサイトを構築してください。
コメント