CATEGORY

始める

Release | Updated |

【最低限】WordPressでよく使うPHPの書き方の基本!

この記事では、WordPressを構築するうえで、最低限必要なPHPの基礎的な知識について解説していきます。
WordPressでの実際の使用例なども紹介しております。

PHPの書き方の基本

ファイルの拡張子

HTMLファイルの場合

HTMLファイルの場合、「index.html」のようにドットの後ろにつく拡張子が「html」になります。

index.html

HTMLファイルは別名「静的ページ」ともいわれます。
1つのページに対して1つのHTMLファイルが必要です。

PHPファイルの場合

PHPファイルの場合、「index.php」のようにドットの後ろにつく拡張子が「php」になります。

index.php

なお、PHPで処理するをするページのことを「動的ページ」、PHPで生成されているサイトのことを「動的サイト」とも言います。

PHPの記述の開始と終了

<?php
  // ここに処理を記述
?>

HTMLタグの最中にPHPを書く場合、下記のようになります。

<p>テキスト</p>
<?php
  // ここに記述
?>
<p>テキスト</p>

なお、phpファイルの最後がPHPで終わる場合は、下記のように最後の「?>」は省略可能です。
ただ、思わぬバグにもつながる可能性もあるので、基本的には 「?>」 で閉じることをおすすめします。

<p>テキスト</p>
<?php
  // ここに記述

コメントアウト

<!-- HTMLコメントアウト -->
<?php 
  // 1行のコメント
  /* 複数行のコメント 
     複数行のコメント
     複数行のコメント */
?>

コメントアウトは、1行の場合と複数行の場合で異なります。

文字列の表示

<?php echo "Hello world"; ?>

文字を表示させるには「echo」(エコー)を使用します。
この表示(出力)させたい文字のことを「文字列」と呼びます。
文字列は、「’」(シングルクォーテーション)、または「”」(ダブルクォーテーション)で囲みます。

文字列の連結

<?php echo 'Hello' . 'world'; ?>

文字列と文字列を連携させるには、「.」(ドット)を使います。

セミコロンで文を分離

<?php 
  echo "Hello world";
  echo "Hello world";
  echo "Hello world"
?>

文の最後に「;」(セミコロン)をつけることで、文を分離できます。
最終行のセミコロンは省略できます。

変数

変数とは?変数の宣言と代入

$sample = "Hello World";

上記は、「sample」という変数に、文字列「Hello World」を代入しています。

「変数」とは、一時的に値を保存しておくための「箱」のようなものです。
PHPでは、最初にドルマーク「$」をつけて変数を作成(宣言)します。

なお、変数の最初の文字に数字をつけることはできないので注意しましょう。

※ダメな変数の宣言例:$1sample = "Hello World";

また、変数に値を入れるためには、半角の「=」(イコール)を使います。
この変数に値を入れることを「代入」といいます。「等しい」の意味ではないので注意しましょう。

変数の出力

<?php 
  $sample = "Hello World";
?>

<!-- Hello Worldと出力 -->
<p><?php echo $sample ?></p>

代入した文字列をWebサイトなどの実際の画面上に表示するためには、echoと組み合わせて出力します。

変数の上書き

<!-- 変数sampleに「Hello World」を代入 -->
<?php 
  $sample = "Hello World";
?>

<!-- Hello Worldと出力 -->
<p><?php echo $sample ?></p>

<!-- 変数sampleに「Hello Web」を再代入 -->
<?php 
  $sample = "Hello Web";
?>

<!-- Hello Webと出力 -->
<p><?php echo $sample ?></p>

代入済みの変数に対して新たに値を代入すると、上書きされます。

なお、「変数を宣言しているのに違う文字が出力される」などの沼にハマることもあるので、同じ変数は利用しないようにするのをおすすめします。

変数を使った連結

変数を含めた文字列の連結については、シングルクォーテーションであるかダブルクォーテーションであるかによって記述方法が変わります。

$name = "tanaka";
echo 'My name is '.$name;

シングルクォーテーションの場合、「.」(ドット)で文字列を連結して出力することができます。

$name = "tanaka";

echo "My name is $name";
echo "My name is ${name}";
echo "My name is {$name}";

ダブルクォーテーションで囲むと、その中で変数を連結できます。 上記すべて同じ出力結果になります。

配列

配列は、似たようなデータを一つの名前で管理したい時に便利です。
ひとつの箱にいくつかの似たようなデータを入れ込んでおき、必要な時に必要なものだけを取り出せます。

基本の書き方

$colors = array("red","blue","yellow");

PHP5.4以上なら、[ ]で置き換えることができます。

$colors = ["red","blue","yellow"];

配列の出力方法

echo $colors[0]; // red
echo $colors[1]; // blue
echo $colors[2]; // yellow

値を取り出すには、「[]」(ブラケット)を使い、順番を指定して取り出せます。 配列の要素には、先頭から順番に0,1,2,3…と0から始まります。 0を指定した場合は1つ目の値、2を指定した場合は3つ目の値が出力されます。

次のように順序を指定して要素ごとに値を代入することも可能です。

$color[0] = 'red';
$color[1] = 'blue';
$color[2] = 'yellow';
echo $color[1]; // blueと出力される

次のように、空の「[]」を使うと 先頭から順に値が代入されます。

$color[] = 'red';
$color[] = 'blue';
$color[] = 'yellow';
echo $color[2]; // yellowと出力される

連想配列

連想配列とは、配列をさらに強化したようなものです。
配列と同様に、ひとつの箱にいくつかの似たようなデータを入れ込んでおき、必要な時に必要なものだけを取り出せます。

基本の書き方

$members = [
  "tanaka" => "Tanaka Taro",
  "sato" => "Sato Hanako"
];

$members = array(
  "tanaka" => "Tanaka Taro",
  "sato" => "Sato Hanako"
);

「,」(カンマ)で区切って指定します。

連想配列の出力方法

echo $members["tanaka"]; // Tanaka Taroと出力
echo $members["sato"]; // Sato Hanakoと出力

条件分岐の処理

ある条件にしたがって処理を分岐させたいときに使います。

if文の書き方の基本

<?php 
  if(条件){
    //条件を満たした時の処理
  }
?>

条件を処理した結果がtrueなら「条件を満たした時の処理」が実行され、そうでないときは何も処理されません。

elseifとelse

<?php if(): ?>
  <!-- 処理1 -->
<?php elseif(): ?>
  <!-- 処理2 -->
<?php else: ?>
  <!-- 処理3 -->
<?php endif; ?>

elseifは、条件を追加するときに使います。

elseは、ifの条件を満たさなかったときに実行する処理を書きます。

なお、条件処理を続ける際はコロン(:)とセミコロン(;)を使って処理をつなぎます。
処理が続く際はコロン(:)、処理が終わる際はセミコロン(;)を使います。
使い分けに注意しましょう。

比較演算子

比較演算子 記述例 意味
==a == baとbの値が等しい
===a === baとbの値が等しく、型も等しい
!=a != baとbの値が等しくない
<>a <> baとbの値が等しくない
!==a !== baとbの値、もしくは型が等しくない
>a > baはbより大きい
=a >= baはbより大きい、または等しい
<a < baはbより小さい
<=a <= baはbより小さい、または等しい
比較演算子の使い方一覧

比較演算子は、左側(左辺)と右側(右辺)に指定した数値や文字列を比較して、等しいか等しく無いか、大きいか小さいかなどを比較します。

論理演算子

論理演算子 記述例 意味
&& または anda && baとbの両方ともtrueの場合
|| または !a || baとbのどちらかがtrueの場合
!!aaがtrueならばfalse
論理演算子の使い方一覧

論理演算子では、 左側(左辺)と右側(右辺)に指定した内容を見て、その条件に当てはまるかどうかを見ます。

if文を使ったWordPressでの仕様例

WordPressで利用する場合、下記のような書き方が多いです。

例:topページ、お問い合わせページ、その他のページそれぞれで表示内容を変えたい時

<?php if( is_front_page() || is_home() ): ?>
  <!-- topページに表示させたい内容 -->
<?php elseif(is_page('contact')): ?>
  <!-- お問い合わせページに表示させたい内容 -->
<?php else: ?>
  <!-- それ以外に表示させたい内容(入れる内容がなければ空でも可) -->
<?php endif; ?>

例2:ある投稿のサムネイルが設定されている場合は設定したサムネイルを表示し、サムネイルが設定されていない場合はdummy画像を表示したい時

<div class="img_area">
  <?php if (has_post_thumbnail()) : ?>
    <?php echo get_thumb_img(); ?>
  <?php else : ?>
    <img src="<?php echo get_template_directory_uri(); ?>/assets/img/dummy.jpg" alt="NO IMAGE">
  <?php endif; ?>
</div>

繰り返しの処理

ある条件にしたがって処理を繰り返したいときの処理についてです。

WordPressでは主に、「while文」もしくは「foreach文」を使うことが多いです。 他にも「for文」もありますが、WordPressではあまり見かけない処理なのでここでは省きます。

「while文」

while文の書き方の基本

<?php while(条件): ?>
…略…
<?php endwhile; ?>

「while」は処理を繰り返すときに使われるPHPの命令で、「while」で始まり「endwhile」で終わるという構造になっています。

while文は「指定の条件を満たすまでのループ処理」が得意です。 条件を満たすまで実行し続けるので、無限ループを引き起こしやすいので注意が必要です。 無限ループとなった場合、「指定の条件」をしているかチェックしましょう。

while文を使ったWordPressでの仕様例

例えばブログサイトなどに多くある「投稿一覧のページ」。 このページでは、投稿記事の数だけ、WordPressから記事を呼び出して表示させる必要があります。

下記の記述の結果として、1ページ内に投稿した記事をずらっと一覧で表示されることになります。

例:もし記事があるなら、その記事を繰り替えして表示するという処理。

<?php if (have_posts()); ?>
<?php while (have_posts()) : the_post(); ?>
  <!-- 繰り返し行いたい処理 -->
<?php endwhile; ?>
<?php endif; ?>

ちなみに省略して書くことも可能です。

<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
  <!-- 繰り返し行いたい処理 -->
<?php endwhile; endif;?>

上から順にサクッと解説!

  • have_posts()
    次の記事があるか調べる記述です。 「have_posts()」は、実は、「have_posts() == true」を省略した書き方になります。 簡単に訳すと、「have_posts()」が「記事があるのかどうか」を探す処理であり、それが「true」ようは「記事がある状態」ということになります。 なお、この関数には括弧の中に何かを記述すること(パラメーターの指定)はできません。
  • the_post()
    次の記事を取得する記述です。

「foreach文」

foreach文の書き方の基本

<?php foreach (配列 as 値を入れる変数) :?>
  <!-- 繰り返し行いたい処理 -->
<?php endforeach; ?>

「foreach」は処理を繰り返すときに使われるPHPの命令で、「foreach」で始まり「endforeach」で終わるという構造になっています。

foreach文を使ったWordPressでの仕様例

WordPressで利用する場合、下記のような書き方が多いです。

while文と同じく、投稿一覧ページを作成したい時。 下記の記述の結果として、1ページ内に投稿した記事をずらっと一覧で表示されることになります。

<?php
  $args = array(
	  'posts_per_page' => -1, // 表示したい投稿数を記述。この場合は全件表示。
	  'post_type' => 'post', // 取得したい投稿タイプを記述。この場合は「投稿」から取得する。
  );
	$my_posts = get_posts($args);
?>
<?php foreach($my_posts as $post): setup_postdata($post); ?>
  <!-- 繰り返し行いたい処理 -->
<?php endforeach; ?>
<?php wp_reset_postdata(); ?>

上から順にサクッと解説!

  • $args = array( )
    取得したい投稿タイプや、表示したい投稿数を配列として$argsに保存。 「$args」は任意の文字でも可。
  • get_posts()
    get_postsの引数として括弧内に、取得したい内容を記述すると、投稿記事を全件取得し、$my_posts に保存するということになります。 今回の場合、$argsの中身を保存しています。
  • setup_postdata($post);
    投稿情報をグローバル変数へセットする関数で、今からこの記事を使いますよという状態。
    ちなみに注意しておくべき点として、setup_postdata()ではなく、setup_postdata($post)でひとつのテンプレート関数として覚えておくといい。 setup_postdata($anny)とかにすると、うまいこと表示されないことがあります。
  • wp_reset_postdata();
    この処理では、 $post の内容をクリアにしています。 実は $post  変数はグローバル変数と言い、WordPress内の全体で共有している変数です。 その変数を上書きしていまっているので、それを自分が使う前の状態に戻す処理にしています。 これを記載していないとあとあと不具合を起こす可能性があります。

おすすめ書籍紹介

最後に、WordPressを始めたい・構築したいという方へ、おすすめの本をご紹介します!

WordPress 仕事の現場でサッと使える! デザイン教科書 (Webデザイナー養成講座)

上記の書籍は、本サイト「WPWeb」の記事作成者やエンジニアからも評判の本で、日頃の実務でも参考にしています。

これからWordPressを学習する初級者を対象に、サイト構築の手順、独自テーマの作成、カスタマイズや運用など、クライアントワークで使われる基本的なWordPressのノウハウが解説されています。

例えば、記事ページを作りたい場合、作りたい記事ページのイメージ絵と、どういった記述をすることでタイトルや文章を呼び出してこれるのかなど、具体的でわかりやすいです。

最近のWordPressを活用するなら学んでおきたい「Gutenberg(ブロックエディタ)」に対応しているも嬉しいポイント!

お値段は3000円未満と少々高めですが、これ一冊で初心者は脱出できます。ぜひ!

こちらの記事もいかかですか?

  1. HOME
  2. 【最低限】WordPressでよく使うPHPの書き方の基本!