※当サイトはアフィリエイト広告を利用しています

if文がエラーで効かない?WordPressのphpテンプレート内で条件分岐の記述をする方法

wordpress

WordPressでテーマの編集をしていると、「記事ページではこう、特定のカテゴリーの記事ではこう…」というように、条件によって違うものを表示させたりしたくなることがある。

php初心者にはハードルが少し高いけど、こういった記述ができるようになると格段にワードプレスの自由度が増してさらに使いやすくなる。

条件分岐のif文がエラーで効かない?

WordPressのphpファイルでif文を使う場合、書き方に気をつけないとエラーが出て効かないことがあったり、それがfunctions.phpだったりすると画面が真っ白になって焦る。

if文だけでなくコードの記述方法にはいくつかあり、それが正しければどの記述法でも問題なく動いてくれる。

ただ「このコードの書き方とこのコードの書き方は相性が悪い」という場合もあり、それが原因でエラーが出たりコードが効かなかったりする。

※functions.phpでエラーが出た場合

functions.phpでエラーが出るとブログが正常に表示されないためすごく焦る。

だけど落ち着いてそのエラーの画面を見てみると、「どのファイルの何行目にあるこの要素がエラーになっているよ」と親切に書いてくれている。

それを見て落ち着いて一つひとつエラーの原因を消していけばいい。

WordPressのphpテンプレート内でif文の記述をする方法

<?php if (is_home()): ?>
パターンA
<?php else: ?>
パターンB
<?php endif; ?>

これでトップページ(home)の場合はパターンA、それ以外の場合はパターンBが表示される。

【WordPress】特定のカテゴリーの記事下にだけphpテンプレートを呼び出す

コードの記述方法には他に以下のような形もある。

<?php
if(is_home()) {
パターンA
} else {
パターンB
}
?>

セミコロンやコロンがなくてコード文字数も少なくこっちの方が簡単そう。

だけどワードプレスのテンプレートのようにdiv要素などを間に挟んでいく場合はこれだと機能しない。

色々な書き方があるとこういうときややこしいなぁ…。