PHP(ピーエイチピー)
PHP(ピーエイチピー)とは、Webサーバー上で動作するサーバーサイドのプログラミング言語です。WordPressの根幹を支える技術で、データベースからコンテンツを取得し、動的にHTMLを生成してブラウザに送信します。JavaScriptがブラウザ側で動作するのに対し、PHPはサーバー側で実行され、処理結果だけがユーザーに届くため、セキュアで柔軟なWebサイト構築が可能です。
PHP(ピーエイチピー)とは、Webサーバー上で動作するサーバーサイドのプログラミング言語です。WordPressの根幹を支える技術で、データベースからコンテンツを取得し、動的にHTMLを生成してブラウザに送信します。JavaScriptがブラウザ側で動作するのに対し、PHPはサーバー側で実行され、処理結果だけがユーザーに届くため、セキュアで柔軟なWebサイト構築が可能です。
PHP(PHP: Hypertext Preprocessor)は、1995年にラスマス・ラードフによって開発されたオープンソースのスクリプト言語です。当初は「Personal Home Page Tools」の略でしたが、現在は再帰的頭字語として「PHP: Hypertext Preprocessor」とされています。
PHPはサーバー上で実行され、その結果(HTML)だけがユーザーのブラウザに送信されます。
| 項目 | PHP(サーバーサイド) | JavaScript(クライアントサイド) |
|---|---|---|
| 実行場所 | Webサーバー | ユーザーのブラウザ |
| コードの可視性 | ユーザーから見えない | ユーザーが閲覧可能 |
| 主な用途 | データベース操作、認証、決済処理 | UI操作、アニメーション、フォーム検証 |
| セキュリティ | 機密情報を扱える | 機密情報は避けるべき |
| 必要な環境 | 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で構築されており、すべての処理が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要件 | 推奨PHPバージョン |
|---|---|---|
| WordPress 6.4以降 | PHP 7.0以上 | PHP 8.1以上 |
| WordPress 6.0〜6.3 | PHP 5.6.20以上 | PHP 7.4以上 |
WordPressテーマは主に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
// HTML出力時
echo esc_html($user_input);
// 属性値の出力時
echo '<img src="' . esc_url($image_url) . '">';
// JavaScriptに渡す時
echo '<script>var data = ' . wp_json_encode($data) . ';</script>';
?>
データベースクエリは必ずプリペアドステートメントを使用します。
<?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));
?>
フォーム送信時の不正リクエスト防止にノンスを使用します。
<?php
// ノンスの生成
wp_nonce_field('my_action', 'my_nonce');
// ノンスの検証
if (!wp_verify_nonce($_POST['my_nonce'], 'my_action')) {
die('不正なリクエストです');
}
?>
<?php
// 管理者権限のチェック
if (!current_user_can('manage_options')) {
wp_die('権限がありません');
}
?>
PHPは、WordPressの心臓部を担うサーバーサイドプログラミング言語です。基本的なWordPressの使用にはPHPの知識は不要ですが、カスタマイズやテーマ・プラグイン開発をしたい場合は、PHPの基礎を学ぶことで可能性が大きく広がります。
PHPを理解することで、WordPressをより深く使いこなせるようになり、思い通りのWebサイトを構築できるようになります。