先日のWordPress個別相談会で、IF文の書き方が色々ありすぎて、わけがわからないという愚痴を聞いたので少しマトメておきます。
PHPでのIF文の書き方は3つ
{ } を使うパターン
1番オーソドックスな書き方かなと思います。
WordPressで利用する場合は、テンプレートファイル(index.phpやpage.phpなどなど)で利用するよりかは関数ファイル(functions.php)で利用することが多いです。
なぜ、テンプレートファイル(index.phpやpage.php)ではあまり利用しないかと言うと、テンプレートファイルには多くのHTMLタグが書かれていいます。
その中にHTMLタグで用いることがない { } が記載されていると可読性が悪くなるので、あまり使わない方が良いんじゃないかと思います。( テンプレートファイルでも{ } を利用しても問題なく動くことは動きます)
: endif; を使うパターン
こちらは { } とは逆にテンプレートファイルで良く使うパターンです。
{ } を使うことなく if else endif と書くことでifの始まりと終わりを明示的に示しています。
この時に「if(is_archive()):」の「:」と「endif;」の「:」の違いが分からないと質問を良く受けます。これに関してうまく説明が出来ないのですが、感覚的に言うと、
「:(コロン)」は「:(コロン)」の前の処理(if文の判定)の影響を受けて、後の処理を実行するという理解で良いかと思います。
「if(is_archive():」であれば、「:(コロン)」の前の「if(is_archive()」の判定を受けて、「:(コロン)」の後ろのプログラムを実行する。
「;(セミコロン)」は「;(セミコロン)」の前の処理は完全に気にせず、「;(セミコロン)」の後ろの処理を実行するという理解で良いかと思います。
1行で書くパターン
if文の判定を受けて、その後の処理が文章を出力したりなど1行でかけるような簡単処理を実行する場合は1行でif文を書くこともあります。
このようにざっくりですが、IF文には大きく3つのパターンがあります。
WordPressでテンプレートをカスタマイズする際にIF文が書けるのと書けないのとではカスタマイズ出来ることが大幅に変わってきます。IF文が苦手な人は頑張って覚えましょう〜♪
コメント
コメント一覧 (1件)
[…] らの記事を参考にさせていただきました。 コロンとセミコロンの違いが特に参考になりました。 ありがとうございます。 WordPressの相談会でも良く聞かれるPHPでのIF文の書き方3パターン […]