プログラム言語は、日本語で説明すると、どうしても分かりづらくなってしまうので、はじめは、日本語として理解しなくても大丈夫 。
何度もコードを書いていくうちに、だんだん覚えていって、感覚をつかめるようになってきます。
今回はWordPressでPHPを書いていく上で、最低限知っておくと良さそうなルールをまとめました。
テキストエディタについて
WordPressでPHPを使う場合であれば、個人的には Php Storm(有料)がおすすめ。無料であれば、Atom や Sublime Text などもおすすめです。
AtomやSublime Textなどは、効率的に使うまでには初期設定が少し面倒なのですが、Php Stormであれば、ほぼ設定なしでいい感じに使えます。
ちなみに、私は以前まではSublime Textをメインに使っていたのですが、Php Stormにしてからは、前よりもWordPressでのPHPのコードが分かるようになりました。
phpに対応しているエディタを使うことで、コードに色がついて視認性がよいだけでなく、コードを書いている途中でヒントを出してくれたり、間違っているところを教えてくれたりするので、初心者の人にこそエディタにこだわってほしいです。
PHPの書き方
PHPはhtmlの中に一緒に記述することができます。
<?php ?> で囲む
<?php ?> の中に命令文を書いていきます。
ファイルの一番最後にくる終了タグの「 ?>」は省略することが推奨されています。終了タグの後に、スペースや改行があると予期せぬ挙動を引き起こすことがあるためです。
文末に「;」がつく
命令文の最後には 「;(セミコロン)」をつけます。
<?php echo 'Hello'; echo 123; ?>
echoは文字や数字を出力するコマンドで、文字を出力するときは「 ‘ (シングルクォート)」か「”(ダブルクォート)」で囲みます。
「,(カンマ)」で区切ることでつなげることもできます。
<?php echo 'Hello', ' world!'; // Hello world! ?>
改行は入れても、入れなくても大丈夫です。
<?php echo 'Hello'; ?> <?php echo 'Hello'; ?>
コメント
1行で書くか、行の途中から書くか、複数行から書くかで微妙に書き方が変わります。
<?php # コメントが入ります echo 'hello'; // コメントが入ります /* 複数行のコメントが入ります。 複数行のコメントが入ります。 */ ?>
変数について
データを一時的に保存しておくものを変数といいます。
変数は頭に「$」を付けて定義をします。
$変数名 = 値;
= は「等しい」という意味ではなく、右辺を左辺に代入する(変数にデータを保存する)意味合いで使います。
<?php $name = 'taro'; echo $name; ?>
サンプルでは、 name という変数に taro という値を代入して、出力しています。
変数のメリット
複数回使うデータを1つの変数に入れておくことで、変更があった場合も修正が1回ですむというメリットがあります。
<?php $title = 'タイトル'; ?> <title><?php echo $title; ?></title> <h1><?php echo $title; ?></h1>
変数名のルール
変数名をつけるときには、
-ローマ字でなく、 なるべく英単語を用いる
– 2語以上の場合は大文字で区切るのが一般的
– 空白は入れない
– 数字や記号からはじめない
といったルールがあります。
$name ......... ○ ローマ字では、なくなるべく英単語で $userName ..... ○ 2語以上の場合は大文字で区切るのが一般的 $user name .... × 空白はNG $123abc ....... × 頭に数字はNG $!? ........... × 頭に記号はNG
また、変数名は大文字・小文字と区別され、別の変数として扱われます。
//すべて別の変数として扱われる。 $title $TITLE $Title
変数の上書き
変数は、後から上書きすることもできます。
<?php $name = 'taro'; echo $name; // taro $name = 'hanako'; //変数の上書き echo $name; // hanako ?>
「. (ドット) 」で文字をつなげることもできます。
<?php
$name = 'taro';
$name = $name . ' yamada';
echo $name; // taro yamada
?>
四則演算
計算したり連結できる「演算子」が用意されています。
+ ...... 足し算 - ...... 引き算 * ...... 掛け算 / ...... 割り算 % ...... 割り算の余り
<?php echo 5 + 5, '<br>'; // 10 echo 5 - 5, '<br>'; // 0 echo 5 * 5, '<br>'; // 25 echo 5 / 5, '<br>'; // 1 echo 7 % 5, '<br>'; // 2 ?>
計算する場合は、省略して書くこともできます。
<?php $num = $num + 10; //基本形 $num += 10; //省略形 ?>
関数(ファンクション)
繰り返し使う処理をまとめて、名前をつけたものを関数と言います。
関数を使うときは、後ろに「括弧()」をつけ、必要に応じて中に引数を入れて使います。
関数名(引数)
WordPressでは、便利な関数がはじめから用意されています。
<?php bloginfo( 'name' ); ?> //サイト名を表示 <?php bloginfo( 'url' ); ?> //サイトのURLを表示
自分で関数を作る場合は、function() { } という書き方をします。
function 関数名(引数名) { 処理 }
<?php function mytheme_scripts() { wp_enqueue_style( 'mytheme-style', get_stylesheet_uri() ); } add_action( 'wp_enqueue_scripts', 'mytheme_scripts' ); ?>
サンプルでは、スタイルシートを読み込ませる関数「mytheme_scripts」を作って、add_action()で呼び出しています。
このコードの詳しい説明については、こちらを参照してください。
配列について
関連のある複数のデータをまとめて格納することができます。
配列をつくるときは、array();を用いて、「,(カンマ)」で要素を区切ります。
$配列名 = array('値1','値2','値3');
<?php $week = array('月','火','水','木','金','土','日'); ?>
配列を取り出すときは、$配列名[数字] というふうにして取り出します。
数字は0から始まります。
<?php echo $week[0]; //月 ?>
アイキャッチ画像を幅100px、高さ100pxで表示するコードだと、このような感じになります。
<?php the_post_thumbnail( array(100,100) ); ?>
連想配列
配列名を取り出すときに、何番目に格納されているかいちいち確認するのかいちいち確認する必要がでてきます。そんなときは、各要素に名前を付けて値を管理することができます。
array( 要素名1 => 値1, 要素名2 => 値2 );
$配列名['要素名']
function mytheme_widgets_init() { register_sidebar( array( 'name' => 'Sidebar', 'id' => 'sidebar', ) ); } add_action( 'widgets_init', 'mytheme_widgets_init' );
<?php dynamic_sidebar( 'sidebar' ); ?>
上記は、ウィジェット機能を有効にするときのサンプルコードです。
WordPressのデフォルトの関数もあり、少し複雑ではありますが、書き方を知っておくだけで、エラーを起こす書き方をしないようになります。
if文
〇〇のときは**をするといった「条件判定」をするときにはifを使います。
単純な条件処理の場合。
if(条件){ 条件を満たす場合の処理 }
少し複雑になってくる場合は elseif や else を使います
if (条件) { 条件1を満たす場合の処理 } elseif (条件2) { 条件2を満たす場合の処理 } else { どの条件も満たさなかった場合の処理 }
例えば、投稿記事がある場合・ない場合といった条件処理を書きたい場合は、こう書きます。
<?php if ( have_posts() ) : ?> <!-- 投稿がある場合の処理 --> <?php else : ?> <!-- 投稿がない場合の処理 --> <?php endif; ?>
サンプルでは「中括弧 { } 」を使っていますが、「: コロン」を使うこともあります。
if ( 条件1 ): 条件1を満たす場合の処理 elseif ( 条件2 ): 条件2を満たす場合の処理 else: どの条件も満たさない場合の処理 elseif ;
while
同じ処理を何度も行いたいときは、whileを使います。
while (繰り返す条件) { 繰り返す内容 }
whileは、if文と合わせて使うことができます。
<?php if ( have_posts() ) : ?> <!-- 投稿がある場合、1度だけ処理される --> <?php while ( have_posts() ) : ?> <?php the_post(); ?> <!-- 繰り返し処理される --> <?php endwhile; ?> <!-- 投稿がある場合、1度だけ処理される --> <?php else : ?> <!-- 投稿がない場合、1度だけ処理される --> <?php endif; ?>