WordPressカスタマイズに必要なPHPの基本知識【初心者向け解説】

WordPress

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では、ifelseifelse、を使用して記述します。

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では、forwhileforeachなどのループ構文が用意されています。

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 など、特定のテンプレートファイルが存在すればそれを使用し、存在しなければより汎用的なテンプレートファイルへとフォールバックします。​

WordPressのテンプレート階層
引用:テンプレート階層 – Japanese Team – WordPress.org 日本語

代表的なテンプレートファイル

  • 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.phpfooter.phpsingle.phpなどのテンプレート構造
  • よく使われるWordPress関数

なんとなく理解しているだけでもWordPressで記載されているコードの意味が読み解けるようになります。
PHPの知識を活用して、より魅力的なサイトを構築してください。

この記事を書いた人
管理人

2012年にWebデザインの勉強を始め、2013年より制作会社に勤務。
これまでに500件以上のWebサイト制作・運用に携わってきました。
現在も制作会社に勤務しながら、Webデザインスクールのトレーナーとしても後進の育成に取り組んでいます。
WordPressやデザインの実践的なノウハウを、初心者にもわかりやすく発信できるよう試行錯誤しています。

管理人をフォローする
WordPress
管理人をフォローする

コメント

タイトルとURLをコピーしました