PHPとは

PHP(PHP: Hypertext Preprocessor)は、1995年にラスマス・ラードフによって開発されたオープンソースのスクリプト言語です。当初は「Personal Home Page Tools」の略でしたが、現在は再帰的頭字語として「PHP: Hypertext Preprocessor」とされています。

サーバーサイド言語の仕組み

PHPはサーバー上で実行され、その結果(HTML)だけがユーザーのブラウザに送信されます。

💡 PHPの実行フロー
1. ユーザーがURLにアクセス
2. サーバーがPHPファイルを実行
3. PHPがデータベースから情報を取得
4. PHPがHTMLを動的に生成
5. 生成されたHTMLをブラウザに送信
6. ブラウザがHTMLを表示
項目 PHP(サーバーサイド) JavaScript(クライアントサイド)
実行場所 Webサーバー ユーザーのブラウザ
コードの可視性 ユーザーから見えない ユーザーが閲覧可能
主な用途 データベース操作、認証、決済処理 UI操作、アニメーション、フォーム検証
セキュリティ 機密情報を扱える 機密情報は避けるべき
必要な環境 PHPが動作するサーバー モダンブラウザ

PHPの特徴

PHPの基本文法

PHPコードの記述方法

PHPコードは<?php と ?>で囲みます。

<?php
echo "Hello, World!";
?>

変数

<?php
$name = "太郎";
$age = 25;
$price = 1980.5;
$isActive = true;
?>

配列

<?php
// インデックス配列
$fruits = array("りんご", "バナナ", "オレンジ");
// または
$fruits = ["りんご", "バナナ", "オレンジ"];

// 連想配列
$user = array(
    "name" => "太郎",
    "age" => 25,
    "email" => "taro@example.com"
);
?>

条件分岐

<?php
if ($age >= 20) {
    echo "成人です";
} elseif ($age >= 13) {
    echo "未成年です";
} else {
    echo "子供です";
}
?>

ループ

<?php
// for文
for ($i = 0; $i < 5; $i++) {
    echo $i;
}

// foreach文(配列の繰り返し)
foreach ($fruits as $fruit) {
    echo $fruit;
}

// while文
$count = 0;
while ($count < 5) {
    echo $count;
    $count++;
}
?>

関数

<?php
function greet($name) {
    return "こんにちは、" . $name . "さん";
}

echo greet("太郎");
?>

WordPressとPHP

WordPressにおけるPHPの役割

WordPressはPHPで構築されており、すべての処理がPHPで動作しています。

WordPressで使う主要なPHP関数

投稿関連

<?php
// 投稿タイトルを表示
the_title();

// 投稿本文を表示
the_content();

// 投稿の抜粋を表示
the_excerpt();

// パーマリンクを表示
the_permalink();

// 投稿日時を表示
the_time('Y年m月d日');
?>

ループ処理

<?php
if (have_posts()) :
    while (have_posts()) : the_post();
        // 投稿の表示処理
        the_title();
        the_content();
    endwhile;
endif;
?>

テンプレートタグ

<?php
// ヘッダーを読み込む
get_header();

// サイドバーを読み込む
get_sidebar();

// フッターを読み込む
get_footer();

// サイト名を表示
bloginfo('name');

// サイトURLを表示
home_url();
?>

WordPressのPHPバージョン要件

WordPressを動作させるには、サーバーに適切なバージョンのPHPがインストールされている必要があります。

WordPressバージョン 最低PHP要件 推奨PHPバージョン
WordPress 6.4以降 PHP 7.0以上 PHP 8.1以上
WordPress 6.0〜6.3 PHP 5.6.20以上 PHP 7.4以上
⚠️ 古いPHPバージョンのリスク
古いバージョンのPHP(5.6、7.0など)は、セキュリティサポートが終了しており、脆弱性のリスクがあります。可能な限り最新の安定版(PHP 8.1以上)を使用しましょう。

WordPressテーマ開発でのPHP

テーマファイルの構成

WordPressテーマは主にPHPファイルで構成されています。

functions.phpでのカスタマイズ例

カスタムメニューの追加

<?php
function register_my_menus() {
    register_nav_menus(array(
        'header-menu' => 'ヘッダーメニュー',
        'footer-menu' => 'フッターメニュー'
    ));
}
add_action('init', 'register_my_menus');
?>

アイキャッチ画像の有効化

<?php
add_theme_support('post-thumbnails');
set_post_thumbnail_size(1200, 630, true);
?>

カスタム投稿タイプの作成

<?php
function create_custom_post_type() {
    register_post_type('product',
        array(
            'labels' => array(
                'name' => '商品',
                'singular_name' => '商品'
            ),
            'public' => true,
            'has_archive' => true,
            'supports' => array('title', 'editor', 'thumbnail')
        )
    );
}
add_action('init', 'create_custom_post_type');
?>

PHPのセキュリティ

WordPressで重要なセキュリティ対策

1. エスケープ処理

ユーザー入力や外部データを出力する際は、必ずエスケープします。

<?php
// HTML出力時
echo esc_html($user_input);

// 属性値の出力時
echo '<img src="' . esc_url($image_url) . '">';

// JavaScriptに渡す時
echo '<script>var data = ' . wp_json_encode($data) . ';</script>';
?>

2. SQLインジェクション対策

データベースクエリは必ずプリペアドステートメントを使用します。

<?php
global $wpdb;

// 悪い例(SQLインジェクションの危険)
$results = $wpdb->get_results("SELECT * FROM wp_posts WHERE ID = " . $_GET['id']);

// 良い例(プリペアドステートメント使用)
$id = absint($_GET['id']);
$results = $wpdb->get_results($wpdb->prepare("SELECT * FROM wp_posts WHERE ID = %d", $id));
?>

3. ノンス(Nonce)の使用

フォーム送信時の不正リクエスト防止にノンスを使用します。

<?php
// ノンスの生成
wp_nonce_field('my_action', 'my_nonce');

// ノンスの検証
if (!wp_verify_nonce($_POST['my_nonce'], 'my_action')) {
    die('不正なリクエストです');
}
?>

4. 権限チェック

<?php
// 管理者権限のチェック
if (!current_user_can('manage_options')) {
    wp_die('権限がありません');
}
?>

よくある質問(FAQ)

Q1. PHPを学ばないとWordPressは使えませんか?
いいえ、基本的な使用(記事投稿、固定ページ作成など)にはPHPの知識は不要です。ただし、テーマのカスタマイズ、プラグイン開発、高度な機能追加をしたい場合は、PHPの基礎知識が必要になります。
Q2. PHPのバージョンはどこで確認できますか?
WordPressの管理画面で「ツール」→「サイトヘルス」→「情報」タブを開くと、サーバー環境の情報に「PHPバージョン」が表示されます。または、レンタルサーバーの管理画面でも確認できます。
Q3. PHPのバージョンアップは安全ですか?
基本的には安全ですが、古いテーマやプラグインが新しいPHPバージョンに対応していない場合、エラーが発生する可能性があります。バージョンアップ前に必ずバックアップを取り、ローカル環境やステージング環境でテストすることを推奨します。
Q4. PHPエラーが表示された場合、どうすればいいですか?
まず、エラーメッセージをメモします。多くの場合、ファイル名と行番号が示されるので、該当箇所を確認します。原因がわからない場合は:
1. 最近追加したプラグインを無効化
2. テーマをデフォルトに戻す
3. PHPのエラーログを確認
4. バックアップから復元
Q5. PHPとHTMLはどう違いますか?
HTMLは静的なマークアップ言語で、ブラウザで直接解釈されます。PHPはプログラミング言語で、サーバー上で実行され、その結果としてHTMLを生成します。WordPressでは、PHPがデータベースから情報を取得し、動的にHTMLを作成してブラウザに送ります。
Q6. functions.phpを編集してサイトが壊れました。どうすればいいですか?
FTPソフトでサーバーに接続し、/wp-content/themes/使用中のテーマ/functions.php を開いて、追加したコードを削除します。バックアップがあれば、元のファイルに戻します。予防策として、functions.php を編集する前は必ずバックアップを取り、子テーマを使用することを推奨します。

まとめ

PHPは、WordPressの心臓部を担うサーバーサイドプログラミング言語です。基本的なWordPressの使用にはPHPの知識は不要ですが、カスタマイズやテーマ・プラグイン開発をしたい場合は、PHPの基礎を学ぶことで可能性が大きく広がります。

✅ PHP学習のポイント
  • まずは基本文法(変数、条件分岐、ループ、関数)を習得
  • WordPressのテンプレートタグから始める
  • 公式ドキュメントを参照する習慣をつける
  • セキュリティを常に意識する
  • 小さなカスタマイズから始めて徐々にステップアップ

PHPを理解することで、WordPressをより深く使いこなせるようになり、思い通りのWebサイトを構築できるようになります。

関連用語