ノマドな海外移住計画
歩き続けること
公開日:2019.03.27
/ 最終更新日:
PHP

WordPress初心者がカスタマイズを始めるためのPHP基礎知識〜PHPのしくみ 前半戦〜

こんにちは。
最近はPHPのコードを書いているときが一番楽しい藤ミヤチです。

前回は、

  • WordPressが動くために必要なPHPってなにもの?
  • PHPはWordPressでなにをしているの?

を中心にまとめました。

そこでいざ、PHPの役割がわかっても、

悩み

じゃあ、PHPってどうやって勉強すればいいの…?大変そう…

と思ったかもしれません。

新しい言語を一から勉強するとなると、すごく大変に思えますよね。

でも大丈夫。

WordPressのカスタマイズをするために必要なPHPの知識を、まったくの初心者でもわかりやすいようにまとめました。

覚えてほしいポイントは8つだけです。

  1. PHPの基本的な書き方を知る
  2. HTMLのコードとして出力するには echo を使う
  3. 使い回す情報は $ で覚えておいてもらう
  4. 何度もする作業は function で設定して使う
  5. if を使って、条件にあてはまるかどうかで動きをかえる
  6. 関連性の高い情報は 配列 / オブジェクト でまとめて管理する
  7. 繰り返して同じ形のものを表示するにはループ処理を使う
  8. わかりにくいPHPの動きを確認するにはvar_dumpを使う

今回は「前半戦」として、そのうちの4つをまとめました。

藤ミヤチ
藤ミヤチ

WordPressのカスタマイズに必要なところを「つまみ食い」して、最短でカスタマイズができるようになろう!

WordPressのカスタマイズをするために知っておくべきPHPの基本的な仕組み

PHPの基本的な書き方を知る

PHPは <?php で始まり ?> で終わります。

<?php
  $site_title = get_bloginfo('name');
  $title = get_the_title();
?>

そして、HTMLやCSSと同じように、コードを書いている/見ている人がわかりやすいようにメモ(コメント)を残すことができます。

HTMLの場合は、

<div class="test">
  <!-- ここがコメント -->
  <p>サンプルテキスト</p>
</div>

↑のように、<!– –> で囲むと、表示されるページの内容に影響を与えずにメモが残せました。

PHPの場合は

<?php
  // これはコメント
  $site_title = get_bloginfo('name');

  /*
    これもコメント
    コメント
  */
  $title = get_the_title();
?>
  • // のあと、改行されるまで
  • /* */ で囲まれた中身

がメモになります。

藤ミヤチ
藤ミヤチ

<?php がでてきたらPHPのコードだよ

HTMLのコードとして出力するには echo を使う

前回の記事で、PHPはサーバーサイドの言語で、HTMLが実際にブラウザで読み込まれるまえに実行される言語だということ説明しました。

https://www.text.com がみたい!
PHPが動く
サーバー
このサイトだよ!
ブラウザ
HTML, CSS, JavaScriptが動く
藤ミヤチ
藤ミヤチ

PHPが、ページを表示するために必要なHTMLを出し分ける役割を担うよ

じゃあ、実際にどうやってPHPはHTMLを用意しているのか?

基本的には echo で「HTMLの一部として書き出してね!」と指示をだします。

<div class="text">
  <?php
    echo '<p>サンプルテキスト</p>';
    // echo '書き出したい内容';
  ?>
</div>

書き出したい内容はシングルクォーテーション( ‘ )でくくって、終わったらセミコロン( ; )です。

藤ミヤチ
藤ミヤチ

一つの指示がおわったらセミコロンを書くのは、PHP全体で共通するルール!CSSと同じだよ

さきほどのコードがサーバーで実行されると、ブラウザで読み込まれるときにはこうなります。

<div class="text">
  <p>サンプルテキスト</p>
</div>

使い回す情報は $ で覚えておいてもらう

PHPを書くときに大活躍するのが「$」。
何度も使うものにラベルを付けて、使いまわしやすくするイメージです。

悩み

どういうこと?

たとえば、あるページ内で同じものを何度も使うことってありますよね。
サイト名とか。

毎回律儀に書いてもいいのですが、書き出しをPHPに一括でお願いすることもできます。

<?php
  $site_name = 'ノマドな海外移住計画';
  // $ラベル名 = '使い回すもの/覚えておいてほしいもの';
?>
<strong>
  <?php
    echo $site_name;
    // echo $ラベル名; つまり、
    // echo 'ノマドな海外移住計画';
    // と同じ意味
  ?>
</strong>
<p>
  このブログのタイトルは「<?php echo $site_name; ?>」です。
</p>

2行目で「今後、$site_name といったら、『ノマドな海外移住計画』っていうことだからね。覚えておいてね」とPHPにお願いしています。

だから、そのあとのPHPコードの中で $site_name と使えば、『ノマドな海外移住計画』のことを意味するんです。

つまり、先程のPHPコードがサーバーで実行されると、↓になります。

<strong>
  ノマドな海外移住計画
</strong>
<p>
  このブログのタイトルは「ノマドな海外移住計画」です。
</p>

すっきり。

藤ミヤチ
藤ミヤチ

何度も使うものは「$ラベル名」でPHPに覚えておいてもらえる

たとえば、サイト名を変えたときには「$site_name を覚えておいて」と宣言したところを1回書き換えるだけで、全ての場所のサイト名が変わります。

<?php
  $site_name = 'ノマド生活';
?>
<strong>
  <?php
    echo $site_name;
  ?>
</strong>
<p>
  このブログのタイトルは「<?php echo $site_name; ?>」です。
</p>

↑の結果のHTMLはこちら↓

<strong>
  ノマド生活
</strong>
<p>
  このブログのタイトルは「ノマド生活」です。
</p>

PHPの便利さを少しでも感じてもらえるといいな。

藤ミヤチ
藤ミヤチ

この $ で覚えてもらうことを、正式には「変数に代入する」というよ

何度もする作業は function で設定して使う

プログラミングの世界では「複数回使うものは共通化すべし」という暗黙の(?)ルールがあります。

疑問

共通化ってどういうこと?

たとえば、CSSでもクラスを作ることで共通化しています。

<h2 class="topic">見出し</h2>
<p>サンプルテキスト。サンプルテキストサンプルテキスト</p>
<h2 class="topic">見出し</h2>
<p>サンプルテキスト。サンプルテキストサンプルテキスト</p>
.topic {
  font-weight: bold;
  font-size: 20px;
  color: #0000ff;  /*青色*/
}

「topic」という共通のクラスを設定し、「太字で、サイズは20pxで、青色の文字」というのを2か所に指定しています。

これが共通化の基本的な考え方です。
2回も同じものを個別に指定すると面倒だから、まとめて指定してしまえ!という、ある種の「手抜き」ですよね。

藤ミヤチ
藤ミヤチ

意外と、プログラミングでは「手抜き」が重要!

ブログを作っていくときには、「記事をデータベースからとってきて、表示するためのHTMLを用意する」といった、同じ手順を何度もくり返すことがあります。

そのつど、

  1. 記事を取ってくる
  2. 記事を並べるためのHTMLを用意する
  3. echo で画面にHTMLを出せるようにする

というのを延々と繰り返してもしょうがない。

めちゃくちゃ面倒だもの。
手抜きしたい。

だからPHPでは、ある程度のまとまった作業をfunctionを使って「共通化」します。

そして、CSSでは共通化した設定に「クラス名」というラベルを付けたように、PHPでは「function + 作業の名前」でラベルを付けて作業をまとめておきます

<?php
  function get_articles() {
    // 作業のまとまりを「get_aritcles」というラベルで管理することにした
    // この場所に、記事を取ってきてHTMLを用意する... という処理をPHPで書く
  }
?>
<div class="articles">
  <?php
    get_articles();
    // function(=作業の集合体)としてまとめた get_articles を実行してもらう
  ?>
</div>
  1. 1〜6行目で「記事を取ってきてHTMLを用意する」という作業のまとまり(get_articles)をつくる
  2. 8〜11行目で、さっき指定した get_articles を実行する

という意味になります。
※function の中の書き方まで解説するとまとまらなくなるので、また別の記事で。

まずは、WordPressのカスタマイズをするときに、

  • 半角英数字 ();
  • 半角英数字 ( 何らかの文字 );

という形があったら、functionで指定した作業のまとまりを実行しているんだな、と気づいてもらえればOKです。

藤ミヤチ
藤ミヤチ

functionで指定した作業のまとまりを「関数」というよ

WordPressのカスタマイズができるようになるために、ポイントを押さえてPHPを勉強しよう

PHPを極めようとすると、とてつもない時間がかかります。
それはもう、何年もかかるかもしれません。

悩み

違うんや、わいが極めたいのはWordPressであって、PHPやないんや…

そうなんですよね。
PHPの基礎知識はあったほうがいいけど、それが一番の目的じゃないんです。

藤ミヤチ
藤ミヤチ

WordPressの仕組みを理解するために必要なPHPのポイントをおさえて、はやく「理屈がわかって」WordPressのカスタマイズができる人になろう!

おさえて欲しいPHPの基本的なポイントは8つ。
そのうちの4つは、

  1. PHPを書くときは<?php ?>でくくる
  2. 【echo】HTMLの一部として出力する
  3. 【変数】$を使ってPHPに使い回す情報を覚えてもらう
  4. 【関数】何度も実行する作業のまとまりは共通化して使い倒す

です。

藤ミヤチ
藤ミヤチ

次回は「後半戦」として、残り4つのポイントを説明していくね